所以我有一个可以使用localhost运行的Web服务服务引用,可以从其生产URL中进行ping操作,但我无法通过生产中的Service Reference调用访问它。我相信问题是我的防火墙。我在同一台服务器上有两个网站,每个网站都有自己的专用IP地址。我试图从第一个网站调用第二个网站上的Web服务。如果我在生产服务器上打开浏览器,则无法导航到任一网站。
错误说明:http:// [209.112.245.103] /Services/OfferService.asmx上没有可以接受该消息的端点。这通常是由错误的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。
内部异常:无法连接到远程服务器
主叫网站位于同一台服务器上(当然是不同的IP),并通过服务参考呼叫网络服务:
Dim offerService As New ServiceReferenceOffer.OfferServiceSoapClient("OfferServiceSoap")
offerService.BroadcastOfferChange(offer.PropertyID, offer.OfferID, offer.ResultResponse)
我的web.config包含以下服务端点信息:
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="OfferServiceSoap" />
<binding name="ConversationServiceSoap" />
</basicHttpBinding>
<customBinding>
<binding name="OfferServiceSoap12">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
<binding name="ConversationServiceSoap12">
<textMessageEncoding messageVersion="Soap12" />
<httpTransport />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address="http://209.112.245.103/Services/ConversationService.asmx"
binding="basicHttpBinding" bindingConfiguration="ConversationServiceSoap"
contract="ServiceReferenceConversation.ConversationServiceSoap"
name="ConversationServiceSoap" />
<endpoint address="http://209.112.245.103/Services/ConversationService.asmx"
binding="customBinding" bindingConfiguration="ConversationServiceSoap12"
contract="ServiceReferenceConversation.ConversationServiceSoap"
name="ConversationServiceSoap12" />
<endpoint address="http://209.112.245.103/Services/OfferService.asmx"
binding="basicHttpBinding" bindingConfiguration="OfferServiceSoap"
contract="ServiceReferenceOffer.OfferServiceSoap" name="OfferServiceSoap" />
<endpoint address="http://209.112.245.103/Services/OfferService.asmx"
binding="customBinding" bindingConfiguration="OfferServiceSoap12"
contract="ServiceReferenceOffer.OfferServiceSoap" name="OfferServiceSoap12" />
</client>
</system.serviceModel>
答案 0 :(得分:0)
您的配置正确无误。我刚刚访问了你的服务器,一切都很顺利(所以它与代码无关)。
由于站点和网站位于同一服务器中,您可能需要使用不同的IP或地址来访问wcf(尝试127.0.0.1,localhost或内部服务器ip)。