非常に具体的な問題に直面しているようです。質問が長かったことをお詫びします。
に物理的に常駐するスクリプトサービスがあります/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を回避する方法はありますか?