2016-11-06 24 views
1

我已经浪费XX小时寻找解决办法,但都没有成功:(如何使用IIS WCF主机服务通过互联网时,服务器在NAT

我有IIS服务器NAT后面,有一个WCF服务主机安装(在IIS上) Localy和LAN通信客户端-WcfService的工作属性,但是当我尝试添加服务引用(通过互联网)到我的wcf服务主机 - 在visual studio中,我遇到如下问题:

请求失败,HTTP状态400:错误请求 元数据包含引用无法解决:

我已经在我的路由器端口WAN上重定向到我的WCF Sercice的端口Lan。其工作属性,因为当我通过互联网连接到http://[...] .svc文件在浏览器中,我可以看到适当的网站。 enter image description here

我的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> 

任何想法如何解决我的问题呢?我会非常感谢任何提示。

谢谢。 对不起,我的英语:)

回答

1

我解决了这个问题。

1日的问题是:在端口转发路由器转发WAN口X到本地出口Y

第二个问题是:在SVC/WSDL我有本地URL(这就是为什么我试图从连接时有HTTP 400错误互联网)

求助:

1st。所以我做了转发WAN_port:Y到LAN_port:Y(相同的端口)

2nd。我在IIS Site - Binding hostname中添加了WAN_domain_name。

积分:https://gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis