在WebService的測試頁面,你看到了什么?SOAP1.1/SOAP1.2/HTTP POST三種方法的測試頁面,但是事實上,此時你用post方法是無法訪問這個webservice的,更不用說get了。.net 2.0下的所有新建webservice默認關閉了這兩種方法,是為了安全考慮。
但是我們有的時候不得不使用這兩種方法,特別是get方法,幾乎由一切軟件和編程方法支持,並且可以穿越幾乎所有的防火牆(除非連web訪問都不讓,那是中情局吧……)。那么如何讓部署起來的webservice支持這種方法呢?
在webservice的目錄下添加Web.config文件(如果已經存在就修改之),最簡單的情況,我們需要這樣的文件:
如果你已經有了VS生成的Web.config,那么只需要修改或添加這么一段
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation defaultLanguage="c#" debug="true"/>
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
</configuration>
如果你已經有了VS生成的Web.config,那么只需要修改或添加這么一段
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>