实现端点

端点是一种可以本机方式侦听请求的服务。SMO 通过使用 Endpoint 对象支持各种类型的端点。您可以创建用于处理特定类型负载且使用特定协议的端点服务,方法是创建一个 Endpoint 对象的实例并设置其属性。

Endpoint 对象的 EndpointType 属性可用于指定下列负载类型之一:

  • 数据库镜像

  • SOAP

  • Service Broker

  • Transact-SQL

ProtocolType 属性还可用于指定以下两种支持的协议:

  • HTTP 协议

  • TCP 协议

如果指定了负载的类型,则可以通过使用 Payload 对象属性设置实际负载。Payload 对象属性提供了对指定类型的负载对象的引用,可以修改该负载对象的属性。

对于 DatabaseMirroringPayload 对象,必须指定镜像角色和是否启用加密。ServiceBrokerPayload 对象要求提供与消息转发、允许的最大连接数和身份验证模式有关的信息。SoapPayloadMethod 对象需要设置各种属性,包括用来指定可用于客户端(存储过程和用户定义函数)的 SOAP 负载方法的 Add 对象属性。

与此类似,通过使用 Protocol 对象属性可以设置实际协议,该对象属性引用由 ProtocolType 属性所指定类型的协议对象。HttpProtocol 对象要求提供受限 IP 地址、端口、网站和身份验证信息的列表。TcpProtocol 对象也需要受限 IP 地址和端口信息的列表。

创建端点并完全定义之后,便可授予、撤消及拒绝数据库用户、组、角色和登录名的访问权限。

示例

对于下面的代码示例,您必须选择编程环境、编程模板和编程语言才能创建应用程序。有关详细信息,请参阅如何在 Visual Studio .NET 中创建 Visual Basic SMO 项目如何在 Visual Studio .NET 中创建 Visual C# SMO 项目

在 Visual Basic 中创建数据库镜像端点服务

代码示例演示了如何在 SMO 中创建数据库镜像端点。这是创建数据库镜像之前的必要步骤。请使用 IsMirroringEnabledDatabase 对象上的其他属性创建数据库镜像。

'Set up a database mirroring endpoint on the server before setting up a database mirror.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Define an Endpoint object variable for database mirroring.
Dim ep As Endpoint
ep = New Endpoint(srv, "Mirroring_Endpoint")
ep.ProtocolType = ProtocolType.Tcp
ep.EndpointType = EndpointType.DatabaseMirroring
'Specify the protocol ports.
ep.Protocol.Http.SslPort = 5024
ep.Protocol.Tcp.ListenerPort = 6666
'Specify the role of the payload.
ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All
'Create the endpoint on the instance of SQL Server.
ep.Create()
'Start the endpoint.
ep.Start()
Console.WriteLine(ep.EndpointState)

在 Visual C# 中创建数据库镜像端点服务

代码示例演示了如何在 SMO 中创建数据库镜像端点。这是创建数据库镜像之前的必要步骤。请使用 IsMirroringEnabledDatabase 对象上的其他属性创建数据库镜像。

//Set up a database mirroring endpoint on the server before 
//setting up a database mirror. 
//Connect to the local, default instance of SQL Server. 
{ 
   Server srv = default(Server); 
   srv = new Server(); 
   //Define an Endpoint object variable for database mirroring. 
   Endpoint ep = default(Endpoint); 
   ep = new Endpoint(srv, "Mirroring_Endpoint"); 
   ep.ProtocolType = ProtocolType.Tcp; 
   ep.EndpointType = EndpointType.DatabaseMirroring; 
   //Specify the protocol ports. 
   ep.Protocol.Http.SslPort = 5024; 
   ep.Protocol.Tcp.ListenerPort = 6666; 
   //Specify the role of the payload. 
   ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All; 
   //Create the endpoint on the instance of SQL Server. 
   ep.Create(); 
   //Start the endpoint. 
   ep.Start(); 
   Console.WriteLine(ep.EndpointState); 
}