2011-09-01 169 views
1

我们试图部署一个使用WCF服务的网站 - 所有工作都在测试中 - 但是当我们通过一个外部IP对其进行实时(指向相同的WCF服务)时,它停止工作。部署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="[email protected]" /> 
     <dns value="webservername"/> 
    </identity> 
    </endpoint> 
</client> 

错误...

异常[0]时重新抛出: 在System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天reqMsg,即时聊天retMsg) 在System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageDa TA & MSGDATA,的Int32类型) 在System.ServiceModel.ICommunicationObject.Close(时间跨度超时) 在System.ServiceModel.ClientBase 1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase 1.关闭() 在System.ServiceModel.ClientBase`1.System.IDisposable.Dispose()

和..

的通信对象,System.ServiceModel.Channels.ServiceChannel, 不能用于通信,因为它是处于故障状态。
System.ServiceModel.CommunicationObjectFaultedException虚空 HandleReturnMessage(System.Runtime.Remoting.Messaging.IMessage, System.Runtime.Remoting.Messaging.IMessage)
服务器堆栈跟踪:
在System.ServiceModel.Channels.CommunicationObject.Close (时间跨度 超时)

...但相同的服务,通过我们的本地测试应用程序仍然在工作 - 我们甚至可以使用面向外部的IP。

任何人都可以指出我正确的方向吗?

+0

你能解释一下你的意思是由端口转发,是123.321.123.321的实际机器还是代理?您的服务的安全配置是什么? – Dominik

+0

我们有我们的托管商开放正确的端口,所以我们不再使用端口 - 但我们仍然有问题。 –

+0

您是否有RDP访问您正在部署网站的服务器?您可以通过浏览器从那里拨打服务网址吗? – Dominik

回答

0

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

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