webservice 測試頁面
阿新 • • 發佈:2019-01-09
問題:
今天上午,WebService部署成站點之後,如果在本地測試webservice可以執行,在遠端卻顯示“測試窗體只能用於來自本地計算機的請求”或者"The test form is only available for requests from the local machine. ",
原因:
大家都知道,Web服務做好後,釋出在網上,別人要呼叫你提供的介面時,是無法開啟測試窗體的,這讓很多的朋友都蠻鬱悶,為什麼別人提供的服務介面就能夠開啟測試窗體,而我的就不行呢?是不是我的程式碼寫的有問題呢?那是因為沒有開啟遠端訪問的原因。
解決:
在web.config的<system.web></system.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--從配置檔案的範圍內移除用來處理請求和響應資料的指定協議。