QA@IT

POST、PUT送信で405エラー

11693 PV

昨日の継続質問で恐縮ですが、下記回避方法を教えて下さい。

OS:Windows8
IDE:VS2012

ASP.NET Web API とWindowsフォームでローカルの開発環境から
無事PUT送信&受信ができたので、レンタルサーバー(ExpressWEB)に
アップしテストを行ってみました。

するとPUTやPOSTでの処理が行われなかった為、
fiddler2で詳細を確認したところ、405エラーになっていました。
POSTやPUTが許可されていないとの情報が下記サイト

http://xin9le.net/articles/109 

にありましので、回避方法を参考に、WebConfigを修正したところ
無事、PUTやPOSTの処理ができることを確認致しました。

WEBサイト自体はWebAPIとWebフォーム(マスターページ付き)と
混在(共存)しているのですが、今度はWEBフォーム側(***.aspx)
で405エラー(405 - このページへのアクセスに使用された HTTP 動詞は許可されていません。)
となってしまいます。

何かご存知の方がおられましたら、お手数ですが情報頂けますと嬉しいです。
宜しくお願い致します。

  • WebフォームへのPOSTもだめですか?PUTだけだめですか? -

回答

ちょっと適当な回答になってしまうんですが、以下の内容を元に
http://social.technet.microsoft.com/Forums/ja-JP/383ebf7e-2b4f-4ed2-b0b7-29f564877116/aspnetresrful?forum=iis7ja

次のようなweb.configにしたところ、PUTでもエラーが出ないようになりました。
(たまたま ExpressWebレンタルしてたので、aspxにPUTして405エラーが出なくなる事だけ確認しました)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <modules>
            <remove name="WebDAVModule"/>
        </modules>
        <handlers>
            <remove name="WebDAV" />
            <remove name="PageHandlerFactory-Integrated" />
            <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,PUT,DELETE" type="System.Web.UI.PageHandlerFactory" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
        </handlers>
        <directoryBrowse enabled="false" />
        <defaultDocument>
            <files>
                <clear />
                <add value="Default.htm" />
                <add value="Default.html" />
                <add value="index.htm" />
                <add value="index.html" />
                <add value="index.aspx" />
                <add value="Default.aspx" />
                <add value="index.php" />
                <add value="index.py" />
            </files>
        </defaultDocument>
    </system.webServer>
</configuration>
編集 履歴 (0)
  • 回答ありがとうございます!
    無事エラーもなくなり、POST、PUT出来ることも確認できました!


    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。