"The test form is only available for requests from the local machine"解決方法

最近剛寫service,部署起來以後出現上述問題,想想肯定也有很多人碰到類似問題,一起來解決掉吧!


原因:
NET Framework 1.1 定義了一個名爲 HttpPostLocalhost 的新協議。默認情況下,這個新協議處於啓用狀態。該協議允許從與使用 HTTP POST 請求的 Web 服務位於同一計算機上的應用程序調用該服務。允許的前提條件是:POST URL 使用 http://localhost,而不是 http://hostname。這使得 Web 服務開發人員可以使用基於 HTML 的測試窗體,從 Web 服務所在的同一計算機調用該 Web 服務。

當您嘗試從遠程計算機訪問 Web 服務時,不會顯示“調用”按鈕。並且,您會收到以下錯誤信息:

The test form is only available for requests from the local machine
解決方法:
1.通過編輯 Web 服務所在的 vroot 的 Web.config 文件,可以啓用 HTTP GET 和 HTTP POST。以下配置同時啓用了 HTTP GET 和 HTTP POST:
<configuration>
    <system.web>
    <webServices>
        <protocols>
            <add name="HttpGet"/>
            <add name="HttpPost"/>
        </protocols>
    </webServices>
    </system.web>
</configuration>

2.通過編輯 Machine.config 中的 <protocols> 節爲計算機上的所有 Web 服務啓用這些協議。下面的示例啓用了 HTTP GET、HTTP POST 及 SOAP,此外還從本地主機啓用了 HTTP POST: <protocols><add name="HttpSoap"/><add name="HttpPost"/><add name="HttpGet"/><add name="HttpPostLocalhost"/><!-- Documentation enables the documentation/test pages --><add name="Documentation"/></protocols>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章