当服务器位于 NAT 后面时如何通过 Internet 使用 IIS WCF 主机服务
How to use IIS WCF Host Service over internet when server is behind NAT
我已经浪费了 xx 个小时来寻找解决方案,但没有成功:(
我在 NAT 后面安装了 IIS 服务器 ,安装了 WCF 服务主机(在 IIS 上)。
本地和通过 LAN 通信客户端-WcfService 工作 属性,但是当我尝试将服务引用(通过 Internet)添加到我的 wcf 服务主机时 - 在 visual studio,我遇到如下问题:
The request failed with HTTP status 400: Bad Request.
Metadata contains a reference that cannot be resolved:
我已将我的路由器端口 WAN 重定向到我的 WCF 服务的端口 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>
任何想法如何解决我的问题?如果有任何提示,我将不胜感激。
谢谢。
对不起我的英语:)
我解决了这个问题。
第一个问题是:在端口转发中,路由器将 WAN 端口 X 转发到本地端口 Y
第二个问题是:在 svc/wsdl 我有本地 url (这就是为什么我在尝试从互联网连接时出现 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
我已经浪费了 xx 个小时来寻找解决方案,但没有成功:(
我在 NAT 后面安装了 IIS 服务器 ,安装了 WCF 服务主机(在 IIS 上)。 本地和通过 LAN 通信客户端-WcfService 工作 属性,但是当我尝试将服务引用(通过 Internet)添加到我的 wcf 服务主机时 - 在 visual studio,我遇到如下问题:
The request failed with HTTP status 400: Bad Request. Metadata contains a reference that cannot be resolved:
我已将我的路由器端口 WAN 重定向到我的 WCF 服务的端口 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>
任何想法如何解决我的问题?如果有任何提示,我将不胜感激。
谢谢。 对不起我的英语:)
我解决了这个问题。
第一个问题是:在端口转发中,路由器将 WAN 端口 X 转发到本地端口 Y
第二个问题是:在 svc/wsdl 我有本地 url (这就是为什么我在尝试从互联网连接时出现 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