3

私は現在、MVCWebアプリケーションでホストされるRESTベースのサービスを作成するためにserviceStackを使用しています。

これまでのところ、ServiceStackは素晴らしく、やりたいことのほとんどを機能させることができました。これはすべてIISExpressで機能します。

IIS 7.5に移行しましたが、PUTを実行すると、「要求のハンドラーが見つかりません」という400エラーが発生します。GETは正常に機能し、IISExpressではPUTとGETの両方が機能します。

IISExpressでは、これはすべて機能しました。

何か案は?

4

1 に答える 1

9

NancyFx WebFxASP.NETドキュメントから取得したIIS+PUT / DELETE動詞に関する情報:

デフォルトでは、IIS6はPUTおよびDELETE動詞をサポートしていません。これを有効にするには、Nancyアプリケーションの仮想ディレクトリにワイルドカードマッピングを追加する必要があります。このドキュメントの「IIS6拡張機能のないURL」セクションをお読みください:http://haacked.com/archive/2008/11/26/ asp.net-mvc-on-iis-6-walkthrough.aspx

IIS 7/7.5でPUT/DELETE要求を行おうとすると、「405Notallowed」ページが表示される場合があります。これを修正する1つの方法は、web.configのWebDAVModuleを削除することです。

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
      <remove name="WebDAVModule" />
    </modules>  
</system.webserver>

Soft PUT/DELETE-HTTP動詞のエミュレート

ServiceStackはX-Http-Method-OverrideHTTPヘッダーもサポートしており、POSTを使用してPUTまたはDELETEをシミュレートできます(その逆も可能です)。

于 2012-04-23T15:37:43.173 に答える