问题背景
最近使用C#编写了一个WebService,希望通过Java进行调用。使用Visual Studio 2013调试WebService时,可以在浏览器中通过localhost地址访问WSDL文件。
访问方式如:http://localhost:2256/DataProvider.asmx?WSDL。
但是,当使用http://127.0.0.1:2256/DataProvider.asmx?WSDL或者使用http://[本机IP]:2256/DataProvider.asmx?WSDL时,显示Bad Request错误。
现在希望其他机器访问本机的WSDL文件,所以要求WebService可以使用IP地址访问。
开发环境:
1)Windows 7
2)Visual Studio 2013
配置方法
1)找到/IIS Express文件夹,打开applicationhost.config。
2)在配置文件中找到标签。
3)标签内包含许多标签,找到WebService所在的标签,如 。
4)在标签内找到标签,在找到标签的bindingInformation属性,如bindingInformation=”*:2256:localhost”。
5)修改localhost为*。有关bindingInformation的详细信息参考这里。
6)使用管理员权限重新启动Visual Studio 2013。
7)调试程序。
8)结束。
备注
bindingInformation设置方法:
1)如果希望对所有IP绑定80端口,并且不指定host名称,则设置为“*:80:”。
2)如果希望对所有IP绑定80端口,并且指定host名称为microsoft.com,则设置为“*:80:microsoft.com”。
2)如果希望对固定IP(192.168.1.150)绑定8080端口,则设置为“192.168.1.150:8080:”。
补充
IIS Express的配置文件默认在C:UsersUserName(用户名)DocumentsIISExpressconfig目录下,打开applicationhost.config
找到site节点
我的路径是
C:UsersAdministratorDocumentsIISExpressconfig
applicationhost.config
注意:1024以下的端口为保留端口,如果端口号小于1024需要以管理员权限启动IIS Express,否则会启动失败。
文件内容如下
<!-- The section controls the registration of sections. Section is the basic unit of deployment, locking, searching and containment for configuration settings. Every section belongs to one section group. A section group is a container of logically-related sections. Sections cannot be nested. Section groups may be nested. The recommended way to unlock sections is by using a location tag: -->
搞定!