这两天为了搞一个项目,其实是写几个接口了,熬了两晚,终于有所收获,今天发布了个初始版本出来,并放到服务器上进行部署。在服务器上看时,完全没有问题,但是当我用我的电脑调用时,出现了一点细小的问题,浏览器显示:测试窗体只能用于来自本地计算机的请求。
本人猜想是服务器与其他机器的访问问题,经查,果不其然。
该问题的原因是:没有开启远程访问的原因。只需要在Web.config文件中的<sysytem.web>下面添加下面代码即可:
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>
代码原理解说(来自MSDN):
protocols 元素指定 ASP.NET Web 服务可用来接收从客户端发送来的请求数据和返回响应数据的协议。协议可用来将请求数据与方法及其参数关联起来,将响应数据与方法及其返回值关联起来。默认情况下,仅启用 HttpSoap 和 Documentation。若要使用 HttpPost 和 HttpGet,需要按照上面的示例所显示的那样启用它们。
protocols 的子元素有(add,clear,remove)
add--添加 ASP.NET Web 服务可用来接收从客户端发送来的请求数据和返回响应数据的指定协议。默认情况下,仅启用 HttpSoap 和 Documentation。
clear--从配置文件的范围内移除所有的协议。
remove--从配置文件的范围内移除用来处理请求和响应数据的指定协议。