我有一个带有 net.tcp 和 http 服务器绑定的 WCF 服务。
Web.config 文件如下所示
<system.web>
<compilation debug="false" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="tcp_Unsecured" portSharingEnabled="true">
<security mode="None" />
</binding>
</netTcpBinding>
</bindings>
<services>
<service name="MarketFeedServiceLibrary.Service1">
<endpoint address="net.tcp://localhost:808/MarketFeedService/Service.svc/mexTcp"
binding="mexTcpBinding" bindingConfiguration="" name="mexEndPoint"
contract="IMetadataExchange" />
<endpoint address="net.tcp://localhost:808/MarketFeedService/Service.svc/tcpService"
binding="netTcpBinding" bindingConfiguration="tcp_Unsecured"
name="dataEndPoint" contract="MarketFeedServiceLibrary.IService1" />
<endpoint address="http://localhost:80/MarketFeedService/Service.svc/basicHttp"
binding="basicHttpBinding" bindingConfiguration="" name="httpDataEndpoint"
contract="MarketFeedServiceLibrary.IService1" />
<endpoint address="http://localhost:80/MarketFeedService/Service.svc/mex"
binding="mexHttpBinding" bindingConfiguration="" name="httpMexEndpoint"
contract="MarketFeedServiceLibrary.IService1" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"
/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
我已经在本地 PC 的 IIS 中托管了该服务,如果我使用地址在 IE 中浏览
"http://localhost/MarketFeedService/Service.svc"
,我会得到如下元数据信息
但是,如果我在 VPS 服务器(Windows Server 2008 IIS 7.5)上的 IIS 中托管相同的 WCF Web 服务,地址相同,我会收到以下错误,
我也可以添加本地托管服务的服务参考,但是如果我尝试使用路径“net.tcp://IPAddress/MarketFeedService/Service.svc”添加服务器的服务参考,我会收到以下错误
无法分派消息,因为端点地址“net.tcp://IPAddress/MarketFeedService/Service.svc”处的服务对于该地址的协议不可用。
注意
- Net.Tcp 端口共享服务,Net.Tcp Listener Adapter 开启
- WCF Http 和 Non-Http Activation 已安装并启用。
- 为默认网站和应用程序启用了 http 和 net.tcp 协议。
非常感谢您提前。