当我用http://xxx.xx.xx.xx:50/WebService/Service.asmx访问接口的时候是可以访问到的,但点击调用后,会跳转到http://xxx.xx.xx.xx/WebService/Service.asmx,因为没有端口,所以就会无法访问。当然这个端口不显示,也可能是iis部署成80默认端口的事。但依然有问题,我需要的是50端口,而不是80。
(除了网上的:在内网新发布个网站并将端口号设成和外网的映射端口相同这种方法,还有其他的解决方法嘛)
网上的对端口验证,我web.config也添加了,但是还是不行
<applicationSettings>
<xx.xx.Properties.Settings>
<setting name="xx_xxx_xxxx_xxx_xxx" serializeAs="String">
<value>http://xxx.xx.xxx.xx:50/WebService/Service.asmx</value>
</setting>
</xx.xx.Properties.Settings>
</applicationSettings>
C#中Webservice,我记得调用后面需要加?WSDL
The following operations are supported. For a formal definition, please review the Service Description.(支持下列操作。有关正式定义,请查看服务说明。)如果接口后面加上?WSDL跳转的页面跟点击服务说明是一个页面
现在的问题是,接口页面也能打开,就是你选了一个接口,点击调用,跳转的页面就变成内网了,我手动添加上50端口就又可以访问了
@但乱红尘: https://jingyan.baidu.com/album/0964eca21dcead8284f5364d.html?picindex=7,是这个意思吗?
@华临天下: 这是本地调试可以更改端口号,如果发布到服务器上,用外网访问如何更改。如果外网访问wsdl显示也是没有50端口的(感觉没有带过去),因为在服务器上进行访问就可以正常获得50端口
@华临天下: 因为外网访问wsdl显示也是没有50端口的
@华临天下: 网上还有一种可以设置wsdl的引用,
<wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">
<soap:address location="http://xxx.xx.xxx.xx/WebService/Service.asmx"/>//这里可以添加端口
</wsdl:port>
但这个接口是自己写的,不是引用的,怎么定死接口,自己引用自己嘛??
@但乱红尘: 感觉你这个问题是服务器配置问题啊,服务器有点小白。。。
http://ask.zol.com.cn/x/6039198.html。这是百度的结果
@华临天下: 应该是了,一开始讨论的方案一就是让他们将路由原来的80改成50,这样一致了,就跟网上的方法相同了,第二种方法就是让用这个接口的移动端设置wsdl的引用,添加上50端口。公司业务上基本解决了,我先想的是,在不改路由的情况下,通过改现有的代码,或者更改web。config什么的让通过浏览器直接访问的也能访问到