问题部署WCF服务

时间:2011-09-01 12:42:59

标签: wcf deployment

我们正在尝试部署一个使用WCF服务的网站 - 一切都在测试中运行 - 但是当我们通过面向外部的IP实现它(指向相同的WCF服务)时它就停止了工作。

当我们将网址粘贴到浏览器中时,会显示基本网页 - 但是当我们通过应用程序尝试时,它会给我们一个错误(见下文)

配置部分......

<client>
  <endpoint address="http://123.321.123.321:8731/N3/WebsiteIntegrationService/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IWebsiteIntegrationService" contract="AccessService.IWebsiteIntegrationService" name="WSHttpBinding_IWebsiteIntegrationService">
    <identity>
      <userPrincipalName value="myname@mydomain" />
      <dns value="webservername"/>
    </identity>
  </endpoint>
</client>

错误......

在[0]处重新抛出异常:    在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)    在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&amp; msgData,Int32 type)    在System.ServiceModel.ICommunicationObject.Close(TimeSpan超时)    在System.ServiceModel.ClientBase 1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase 1.Close()    在System.ServiceModel.ClientBase`1.System.IDisposable.Dispose()

和..

  

通信对象System.ServiceModel.Channels.ServiceChannel,   不能用于通信,因为它处于Faulted状态   System.ServiceModel.CommunicationObjectFaultedException Void   HandleReturnMessage(System.Runtime.Remoting.Messaging.IMessage,   System.Runtime.Remoting.Messaging.IMessage)
  服务器堆栈跟踪:
  在System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan   超时)

...但是同样的服务仍然通过我们的本地测试应用程序运行 - 我们甚至可以使用面向外部的IP。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

端点地址应该是安装服务的地址(即使用机器上的端口,而不是路由器nat表中定义的外部端口)。

我遇到了类似Web场的情况,其中外部调用是通过https进行的,但内部负载均衡器通过http调用服务器场中的实际机器。为此,服务(行为,端点)上的所有配置设置都使用http地址,因为这是他们被调用的方式。