2017-05-26 3 views
0

WindowsサーバーにIIS 8.5を新規インストールしました。 IISでは、4つまたは5つのWCFサービスを展開しました。IIS特定のサービス1つにputを許可しない

これらのサービスの一部には、PUTリクエストがあります(削除はすぐに続きます)。しかし、我々は問題にぶつかる。これらのサービスの1つで、PUTは「メソッドが許可されていません」405エラーを返します。

ここで、ハンドラに関するすべてのサービスの設定は100%同じです(これを数回確認しました)。

他のサービスでもご利用いただけますPUTリクエスト、これらも正常に動作します。私が郵便配達員とHEADリクエストを行うと、GETが要求に許可されているだけが表示されます。これはまた、PUTとして存在する必要があります。

(たとえば、1つはWebGet属性を持ち、もう1つはPUTで構成されたWebInvoke)を同じURIに持っています。 Visual Studioからのデバッグ時にローカルでは、PUT要求はうまく動作しますが、この単一のエンドポイントでは動作させることはできません。

私が見ることができる唯一の違いは動作しません。私たちのPUTリクエストはJSONの体を消費し、他は唯一のURIのparamsに見えることである...

+0

https://stackoverflow.com/a/6223774/4074041 –

+0

が、私はそれに見ていきますが、WebDAVは –

答えて

0

あなたはそのようなweb.configファイルを通じてExtensionlessUrlHandlerを追加することができます:

<handlers accessPolicy="Read, Script"> 
    <remove name="WebDAV" /> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" 
     path="*." 
     verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" 
     modules="IsapiModule" 
     scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" 
     preCondition="classicMode,runtimeVersionv4.0,bitness64" 
     responseBufferLimit="0" /> 
</handlers> 
+0

はい、私はこれを試したがインストールされていません。 同じ設定の他のサービスの場合は –

+0

なので、**難しい方法**を提供できます:どのハンドラがPOSTリクエストを受け取るかをチェックし、standart IISハンドラを使ってweb.config 'custom httphandler'に追加します'PUT'要求を許可します。 –

+0

私はそれを理解しようとします。 –

関連する問題