調用 WebService 瀏覽器提示 500 (Internal Server Error) 的緣由及解決辦法

在 ASP.NET 開發中,WebService部署成站點以後,若是在本地測試WebService能夠運行,在遠程卻顯示「測試窗體只能用於來自本地計算機的請求」或 者"The test form is only available for requests from the local machine. ",那是由於沒有開啓遠程訪問。html

 

 

在瀏覽器中調試(登陸界面以AJAX調用 WebService)的結果就是出現 500 (Internal Server Error)錯誤,以下圖所示。web

 

 

遇到此類狀況的解決辦法以下:瀏覽器

在web.config的<system.web></system.web>中間加入以下配置節內容:

<webServices>
    <protocols>
         <add name="HttpSoap"/>
         <add name="HttpPost"/>
         <add name="HttpGet"/>
         <add name="Documentation"/>
     </protocols>
</webServices>
測試

以後就能夠正常調用 WebService 了。spa

 

如下說明來自MSDN:
protocols 元素指定 ASP.NET Web 服務可用來接收從客戶端發送來的請求數據和返回響應數據的協議。協議可用來將請求數據與方法及其參數關聯起來,將響應數據與方法及其返回值關聯起來。默認 狀況下,僅啓用 HttpSoap 和 Documentation。若要使用 HttpPost 和 HttpGet,須要按照上面的示例所顯示的那樣啓用它們。
protocols 的子元素有(add,clear,remove)
add--添加 ASP.NET Web 服務可用來接收從客戶端發送來的請求數據和返回響應數據的指定協議。默認狀況下,僅啓用 HttpSoap 和 Documentation。
clear--從配置文件的範圍內移除全部的協議。
remove--從配置文件的範圍內移除用來處理請求和響應數據的指定協議。
調試

參考:webservice 測試窗體只能用於來自本地計算機的請求orm

相關文章
相關標籤/搜索