我已经编写了一个WCF服务,该服务托管在家用计算机上的Windows服务中。然后我写了一个试图连接到该服务的MVC3站点。 MVC3站点托管在godaddy服务器上。我正确地打开防火墙上的端口,因为我能够从不同网络上的计算机访问服务描述站点,我甚至让一个朋友从他的计算机上运行的控制台应用程序连接到Web服务,它工作得很好。但是,当我尝试从我的MVC3站点调用Web服务时,它会抛出以下错误:
http://myExternIpAddress:8000/MyService/service没有可以接受该消息的端点。这通常是由错误的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。
以下是该服务的app.config的重要部分:
<services>
<service name="MyService.MyService"
behaviorConfiguration="MyServiceBehavior" >
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/MyService/service" />
</baseAddresses>
</host>
<endpoint address=""
binding="basicHttpBinding"
contract="MyService.IMyService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
这是MVC3站点的web.config的服务部分
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IMyService" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://myExternalIpAddress:8000/MyService/service"
binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IMyService"
contract="LocalService.IMyService" name="BasicHttpBinding_IMyService" />
</client>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
感谢您提供的任何帮助!
答案 0 :(得分:1)
我会联系GoDaddy寻求支持。如果WCF服务在您的朋友计算机上运行 - 这可能是托管环境问题。