问题:
在内网发布 WebService 访问正常,通过路由做外网端口映射后,在外网访问时能正常访问到 WebService 的方法列表,但点击测试页面的调用按钮后,跳转出的结果页面地址却丢失了外网映射的端口,造成调取不到数据。
原因:
在内网发布的 WebService 发布到了 IIS 的默认网站下,端口为默认的 80 ,一般的浏览器会将 80 的端口省略,所以造成了端口丢失的假象。其实,端口没有丢失只是仍然使用的内网的端口而已。
解决:
最简单的方法,在内网新发布个网站并将端口号设成和外网的映射端口相同。此方法也许不是最根本的解决方案,也许不是最好的解决方案,但可以解决燃眉之急。