問題:呼叫OGWebAPI,有些API會發生Http Status 405的錯誤。

徵狀

呼叫OGWebAPI,有些API會發生Http Status 405的錯誤。
以SampleOGWebAPI.4為例,呼叫SetGroup,卻發生Http Status 405的錯誤。

原因

Web API在使用 HTTP Method PUT或DELETE時,會與WebDAV套件衝突。
當發生衝突時,就會顯示以下錯誤訊息:
# English
405 - HTTP verb used to access this page is not allowed.
# 中文
405 - 不允許用來存取此網頁的 HTTP 指令動詞。

解決方案

兩種解法,擇一均可

  1. 修改OGWebAPI中Web.config,移除WebDAV
    在 <modules> 標籤中加入 <remove name="WebDAVModule"/> 及 <handlers> 標籤中加入 <remove name="WebDAV" />。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <system.webServer>
    <modules>
    <!-- ... -->
    <remove name="WebDAVModule"/>
    </modules>
    <handlers>
    <!-- ... -->
    <remove name="WebDAV" />
    </handlers>
    </system.webServer>
    </configuration>

  2. 從 IIS 中移除WebDAV套件
    如果是 Windows Server 的話,打開伺服器管理員,移除角色及功能精靈,找到 WebDAV 發行 (WebDAV Publishing) 取消勾選後移除。如圖:

    如果是 Windows 10的話,打開控制台\程式集,開啟或關閉Windows功能,找到 WebDAV 發行 (WebDAV Publishing) 取消勾選後移除。如圖:

最終審定

最後檢閱日期:2019/08/16
適用門將版本號:4.4.106.0含以上
問題編號:2019081601