2

非常に具体的な問題に直面しているようです。質問が長かったことをお詫びします。

に物理的に常駐するスクリプトサービスがあります/somepath/service.asmx。URL書き換えモジュール(UrlRewritingNet v2.0)を使用し/service.asmxて、物理的な場所からの通話を書き換えています。このモジュールは.NetのHttpContext.RewritePath()機能を使用します。

私のサービスはメソッドを公開dosomethingし、私のページにはスクリプト呼び出しがあります:

$.ajax({
  type: "POST",
  url: "/service.asmx/dosomething",
  data: JSON.stringify(inputData),
  contentType: "application/json; charset=utf-8",
  dataType: "json"
});

このコードをIISで実行すると、ステータスコード200が返されますが、VS開発サーバーでこのコードを実行すると、が返されます405 Method Not Allowed。スタックトレースからのエラーメッセージは次のとおりです。

"The HTTP verb POST used to access path '/somepath/service.asmx/dosomething' is not allowed."

このメッセージでは、パスが正しくルーティングされているように見えることに注意してください。

/somepath/service.asmx/dosomething興味深いのは、ajax呼び出しを完全なURLに変更すると、IISとVS開発サーバーの両方が正常に機能するため、これがルーティングの問題であるとほぼ確信しています。

その405を回避する方法はありますか?

4

0 に答える 0