服务可以有多个端点吗?
答
服务可能在单个主机中有多个端点,但每个端点都必须具有地址,绑定和合同的唯一组合。对于IIS托管的服务(即.SVC文件),只需将端点地址设置为相对 URI并确保您的Visual Studio或wsdl.exe生成的客户端在其构造函数中指定了端点的名称。
另请参阅MSDN文章Multiple Endpoints。
答
如果您当前使用IIS作为主机,则需要创建一个新的主机 - IIS只支持HTTP而不支持TCP绑定。但是,如果您使用的是WAS或Windows服务,那么您只需创建一个新的net.tcp端点即可脱身。
答
您可以在服务器或客户端上定义多个端点。
要做到这一点在客户端上,你只需要与一个不同名称的新端点编辑您的app.config文件,那么当你创建新的客户定义。
例如,如果你有喜欢你的客户端应用程序的端点:
<endpoint address="https://yourdomain.com/WCF/YourService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IYourService"
contract="MessagingService.IYourService"
name="BasicHttpBinding_IYourService" />
你调用由:
:YourServiceClient client = new YourServiceClient();
您可以用新的名称添加一个新的端点
<endpoint address="https://yourotherdomain.com/WCF/YourService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IYourService"
contract="MessagingService.IYourService"
name="BasicHttpBinding_IYourService_ENDPOINT2" />
你可以打电话给:
YourServiceClient client = new YourServiceClient("BasicHttpBinding_IYourService_ENDPOINT2");
我只是改变了上述域名,但如果你犯了一个新的绑定配置部分,你可以只改变“bindingConfiguration”值。
我认为II7确实支持非HTTP绑定(即TCP)。 – 2010-08-30 09:52:19