.NET中Web Services可使用的传输协议设置

来源:互联网 发布:e店宝软件 编辑:程序博客网 时间:2024/04/27 04:59

  通常来说Web Services可以通过多种方式调用,可以是SOAP over HTTP、HTTP GET或HTTP POST。在.NET如果对<system.web>中<webServices>下的 <protocols>进行任何配置,则默认可以采用SOAP over HTTP调用服务,同时只允许本地(本机)采用HTTP POST方式调用而不允许远程HTTP POST调用,同时也提供远程访问Web Services的说明页面。其效果和下面显式设置参数是一样的:

 

 

Code:
  1. <webServices>   
  2.     <protocols>   
  3.         <add name="HttpSoap"/>   
  4.         <add name="HttpPostLocalhost"/>   
  5.         <add name="Documentation"/>   
  6.     </protocols>   
  7. </webServices>  

"HttpSoap"表明可以通过SOAP over HTTP方式调用web service服务,和其相关的设置还有"HttpSoap12"和"AnyHttpSoap"两个设置项,这两项一般使用的较少,需了解大家可以查询一下相关材料。 
"HttpPostLocalhost"表明只有本地(localhost)才能采用post方式调用web service,如果设置了"HttpPost"协议,则这项设置项将失效,不起任何作用。
"Documentation"表明可以调用web service的地址查看web service提供的可调用接口的说明,并可查看其WSDL描述内容。

如果要取消其中的某项设置项,可以通过remove进行设置,比如你不想让客户端查看到web service提供的接口、说明及WSDL描述,则可以通过下面的方式取消"Documentation"设置。
 

Code:
  1. <webServices>   
  2.     <protocols>   
  3.                <remove name="Documentation"/>   
  4.     </protocols>   
  5. </webServices>  

启用HTTP GET和HTTP POST方式,可以通过如下设置项实现:

Code:
  1. <webServices>   
  2.     <protocols>   
  3.         <add name="HttpGet"/>   
  4.         <add name="HttpPost"/>                  
  5.     </protocols>   
  6. </webServices>  

假如Web Service地址是http://localhost/service.asmx,并提供两个可调用方法GetData(),GetDataByID(string ID)。
"HttpGet"方式,说明可以通过在浏览器地址中输入"http://localhost/service.asmx/GetData"和"http://localhost/service.asmx/GetDataByID?ID=ID参数值"的方式调用上面两个方法。
"HttpPost"方式,说明可以以HTTP Post的方式调用Web Service所提供的方法。

为了安全起见,最好不启用HttpGet方式调用Web Services,如果设置了,任何人都可以通过点击URL的方式调用web service地址,存在安全风险。

原创粉丝点击