2012-11-06 45 views
11

IIS 7.5でASP.NET MVC4 Webアプリケーションをホストしようとしています。アプリケーションをデバッグすると、すべて正常に動作します(これはWindows認証のためだと仮定しています)。私はアプリを公開し、それを参照するとき はしかし、私は405メソッド許可されていないエラーを取得:私はこれを読んでいたものからjQuery POST、エラー405メソッドが許可されていません

POST http://localhost/ 405 (Method Not Allowed) 
send 
i.extend.ajax 
i.(anonymous function) 
(anonymous function) 

をIISでハンドラマッピングに問題があるか、いくつかの設定のいずれかがあるさweb.configに必要です。いずれにしても、私は正しい解決策を見つけられませんでした。 誰でも私のweb.configがすべてのPOSTSに含めるべきことを教えてもらえますか?そして/またはIISで正しいHandlerマッピングを設定する方法。私はWeb開発の初心者です。オプションの数が圧倒的に多いことがわかります。

エラーをスローするJavaScriptの一部である次

$.post("/", { latitude: locLat, longitude: locLon, username: $('#onlineUsers').attr('itemid') }); 
+0

火災のバグやChrome開発ツールを調べると、リクエストが行われているURLは正しいですか? – Rafay

+0

リクエストはホームコントローラのIndexメソッドにあります。私は '/'と 'Home/Index'をURLとしてPOSTを試してみましたが、両方とも同じエラーが出ますが、正しいと信じています。 – Matt

答えて

18

要求されたHTTP動詞(GET、POSTは、ヘッドをDELETEなど、PUT)場合IISによってスローされ、405と指定されたハンドラによってサポートされていない/許可されていません。

あなたはIISマネージャを開く必要があります - > [既定のWebサイト - >ハンドラマッピング(ウェブ・アプリケーションに固有またはハンドラマッピング)

enter image description here

はここではあなたがする必要がありますそれらのうちの1つが "POST"動詞を許可していないので、ハンドラマッピングを使って演奏してください。

特定のページ(.aspx、.ashxなど)に投稿していないため、問題の原因となっている正確なハンドラーを特定することは困難です。関心の

ハンドラは次のようになります。

  • ExtensionlessUrlHandler-ISAPI-4.0_32bit/64
  • StaticFile

あなたのリクエストがにルーティングされているハンドラを特定したら、二重にそれをクリックしてくださいダイアログを開きます。

enter image description here

そこから「要求の制限」をクリックし、「動詞」

は、適切な動詞がテキスト領域に存在していることを確認してください。

enter image description here

私は前に述べたように、私はあなたが任意の特定のページに掲載されていないとして、あなたの要求を処理しているハンドラわからない(あなたが適切にリクエストをルーティングしている場所でのURLの再書き込みを有していてもよく)。


以上失敗した場合、あなたはWebDAVの発行がインストールされているかどうかを確認して(再起動が必要)それを削除する必要があるかもしれません。ここ

$.post('@Url.Content("~/Attach/UpdateAttach")' 
+3

静的ファイルハンドラが問題でした。助けてくれてありがとう、素晴らしい答え! – Matt

+0

しかし、これを実装した後、私のために働くが、asp:linkボタンの停止が機能する。この問題がなぜ起こるのか知っていますか? – rahularyansharma

+0

GETのみを使用する場合、POST jquery ajaxは機能しますが、asp:linkボタンは機能しなくなり、画像に示されているようにすべて使用すると、jquer.postは405エラーをスローします。 – rahularyansharma

0

はたぶん、あなたはこのようなあなたのpost'URlフォーマットを変更する必要がありますIISコントロールパネル..

が、これは私の場合であり、ここで私が見つけたもの..です

私が目に私のWebアプリケーションを持っています私はFileZillaを使ってjqueryのテストフォルダを作成しました。(FileZillaを使用しているので、Webアプリケーションであり、したがって、 GoDaddyはのIISは、私は、このテストフォルダにこのjQueryのをテストするたびに、このフォルダは、その後、私たちのアプリケーションの一部)

になりたいと思っていることを認識していないです..私はそのエラーを取得[405メソッドは許可されていません] ...

解決方法は非常に簡単でした:

私はそのテストフォルダのcrea FileZillaによって提出され、Godaddyコントロールパネルから作成されたフォルダ内に配置されています(この場合、IISはこのページが私のWebアプリケーションの一部であることを認識します:))

共有ホスティングに役立つことを望む

0

一部のユーザーは、専用のサーバーをホスティングしていない共有抱えているので、彼らはへのアクセスを取得することができない場合があります。

WebDAV

関連する問題