WCF远程调用无法识别服务器名

下面我介绍一下我的问题:我开发了一写wcf服务,采用iis进行host。由于这个项目涉及到跨区域的使用,因此我们的客户申请了一个固定公网ip地址。公网ip直接连接在路由器上,然后通过路由器的端口映射,将公网ip地址映射到内网ip地址。内网服务器安装windows2003,iis6.0。由于wcf默认发布时采用了服务器的机器名,因此跨网段使用是无法工作的。所以我采用了个iis默认站点增加主机头值来避免这个问题。但是问题出来了,若我给iis的主机头值设为内网的ip,那么通过ie是可以正确的将计算机名改为内网ip地址的,但是一旦我把主机头值改为了公网的ip地址,那么通过ie就无法访问了。

解决办法:

修改Hosts表

Hosts表文件在系统中的位置,Windows 9X系统存放在C:\Windows目录,Windows NT/2000系统,其保存在c:\winnt\system32\drivers\etc目录,Windows XP系统保存在c:\windows\system32\drivers\etc,如果找不到的话,可以通过系统的搜索工具进行搜索。找到后,直接用记事本将其打开,然后将除了“#”开头的其它行内容全部删除,例如“127.0.0.1 onlinestore.smgbb.cn”,也可以增加你要识别的计算机名,如:ZRSERVER IP地址 最后单击“文件→保存”将其保存即可。

你可能感兴趣的:(WCF)