.NET MVCでHttp PUT要求を有効にする

私はMVCアプリケーションで作業しています。サービスの私の元の草案で、私は私のコントローラの一つでこのメソッドを持っていた:

    [AcceptVerbs(HttpVerbs.Post)]
    [ActionName("UpdateRelationship")]
    public ActionResult UpdateRelationship(string aParameter)

そしてそれはうまくいった。最新のリビジョンでは、これをPUTリクエストに変更して、ポストを使用する同様の追加メカニズムと区別してください。だから私はこれをこれに変更した:

    [AcceptVerbs(HttpVerbs.Put)]
    [ActionName("UpdateRelationship")]
    public ActionResult UpdateRelationship(string aParameter)

そして突然私はAcceptVerbsを変更するだけで、私の要求に404を得ています。エラーの様子から、IISがMVC拡張レスのURLを書き直すのではなく、標準のWebフォームページとしてリクエストをルーティングしようとしているように見えます。

これを検索すると、PUTリクエストを許可していないブラウザが一般的な原因になっているように見えますが、これをテストするためにブラウザを使用していません - 私はFiddlerを使用しています。だから問題はないはずです。私はまた、正しい設定が既にweb.configにあると思う:


    
    
  
    
    
        
        
  
        
    
    
        
            
                
            
        
    

それで私は何を逃したのですか?

編集:このコードは、同僚のマシンで動作します。だから、私のローカルなIISの設定が失敗したように見えます。私が何を変えなければならないかを説明することは、まだ失われています - どんな考えですか?

乾杯、 マット

12
それはWindows 7のプロに組み込まれているものなので、それは明示的だと思います。
追加された 著者 Matt Thrower,
IIS Expressまたは全面的なIISを使用していますか?もしフルボイスしているのであれば、どのOSをお使いですか?
追加された 著者 Damien_The_Unbeliever,

3 答え

I had to remove the WebDav Module completely a stated in this blog post


  
    
      
      
      
      
      
      
      
    
    
      
    
  

9
追加された
これはGoDaddy共有ホスティングに関する私の問題を解決しました。デフォルトでは、GETとPOSTのみが有効になっていますが、これにより、REST APIのPUTとDELETE(およびHEAD)が許可されます。
追加された 著者 Scott Rickman,
この投稿のようにモジュールWebDAVModuleを削除することを忘れないでください。それがGoDaddyホストで動作していなかった理由です。
追加された 著者 Lelis718,
この問題と戦うのにおよそ2日後、あなたは私の人生を救った。ありがとう。これはGO_TRASH_DADDYの問題を解決しました。
追加された 著者 Gerson C Filho,

WebDAVを含む多くの無駄な検索と盲目の路地の後、私は別のSO家族のサイトで答えを見つけました:)

https://serverfault.com/questions/93424/how-to- iis7の有効化および削除

4
追加された
どのような拡張機能を更新しましたか?答えは、任意の拡張子(.aspx/.ascx)をudpdaeに言います.MVCの場合、そのような拡張はありません。あなたはあなたの答えを詳述できますか?
追加された 著者 Shyju,

私たちのために働いた構成は以下の通りです。

    
    
        
        
    
    
        
        
    

これは、拡張機能のないURLに固有です。

一般的に、runAllManagedModulesForAllRequests = falseを設定することをお勧めします。

3
追加された
行が間違っている
追加された 著者 Tyrsius,