2012-01-19 9 views
2

MVC3およびWCF Webサービスを単一のアプリケーションとしてデプロイしました。どちらも期待どおりに動作します。 GET要求とPOST要求は完全に機能しますが、PUTとDELETE要求は404エラーを返します。これらはローカルでうまく動作します。最初は、PUT/DELETE要求のユーザー名/パスワードを要求していました。ここではここ展開されたWCF RESTfulサービスのPUTおよびDELETE要求に404エラーが発生する

は私のweb.configファイルから私のウェブサーバーの設定である

<system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
     <modules runAllManagedModulesForAllRequests="true"> 
      <remove name="WebDAVModule" /> 
     </modules> 
     <handlers> 
      <remove name="WebDAVModule" /> 
     </handlers>  
     <security> 
      <authorization> 
      <remove users="*" roles="" verbs="" /> 
      <add accessType="Allow" users="*" 
          verbs="GET,HEAD,POST,DEBUG,PUT,DELETE" /> 
      </authorization> 
     </security>    
    </system.webServer> 

私のPUTで、メソッドを削除します。

[OperationContract] 
    [WebInvoke(UriTemplate = "{id}", Method = "PUT")] 
    public MyResource Put(MyResource updatedResource, int id) 
    { 
     MyResource existingResource = Database.GetResourceById(id); 
     existingResource.Name = updatedResource.Name; 
     Database.SaveResource(existingResource); 

     return existingResource; 
    } 

    [OperationContract] 
    [WebInvoke(UriTemplate = "{id}", Method = "DELETE")] 
    public MyResource Delete(int id) 
    { 
     MyResource sampleResource = Database.DeleteResourceById(id); 
     return sampleResource; 
    } 

は私が設定:

  • .NET 4.0を
  • MVC3
  • は7.0

注IIS:私は、共有ホスティングプランの午前、それゆえ私は、web.configファイルを経由して変更を加える必要がありIIS7.0に直接アクセスすることはできません。

+0

共有ホストでこれを行う方法がわかりません。[this](http://geekswithblogs.net/michelotti/archive/2011/05/28/resolve-404-in-iis-express)をチェックしてください。 -for-put-and-delete-verbs.aspx)out – MilkyWayJoe

答えて

0

有効にするTracingサービスで、PUTまたはDELETEアクションを実行しようとすると404エラーが発生する理由を確認してください。

+0

トレースを有効にして、独自のログを実装しました。 GETメソッドとPOSTメソッドを呼び出すと、確認メッセージが出力されますが、PUTメソッドまたはDELETEメソッドが呼び出されたことを確認(トレースファイルでは何も確認)しません。呼び出しがWebサービスに到達する前にブロックされているかのようです。 – user1157841

関連する問題