我浪费了xx小时来寻找解决方案,但没有成功:(
我有IIS服务器在NAT 后面,安装了一个WCF服务主机(在IIS上)。 Localy和通过局域网通信客户端-WcfService工作属性,但当我尝试将服务引用(通过互联网)添加到我的wcf服务主机 - 在visual studio中,我有一个问题如下:
请求失败,HTTP状态为400:错误请求。 元数据包含无法解析的引用:
我已经在我的路由器端口WAN上重定向到我的WCF Sercice的端口Lan。它的工作属性,因为当我通过互联网连接到浏览器中的http://[...] .svc文件时,我可以看到正确的网站。
我的web.config
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="mexBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="mexBehavior" name="KSPDJOBService.KSPDJOBService">
<endpoint address="" binding="wsHttpBinding" contract="KSPDJOBService.IKSPDJOBService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="http://localhost/KSPDJOBService" />
</baseAddresses>
</host>
</service>
</services>
任何想法如何解决我的问题?我会非常感谢任何提示。
感谢。 抱歉我的英文:)
答案 0 :(得分:1)
我解决了这个问题。
第一个问题是:在端口转发路由器中将WAN端口X转发到本地端口Y第二个问题是:在svc / wsdl我有本地网址(这就是为什么我在尝试从互联网连接时遇到HTTP 400错误)
解决:
第一。所以我已经将WAN_port:Y转发到LAN_port:Y(相同的端口)
第二。我在IIS站点中添加了 - 绑定主机名为WAN_domain_name。
致记:https://gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis