従来のASP.NetWebFormコードビハインドページでホストされているWebMethodをajax経由で呼び出そうとしています。WebMethodのコードは次のとおりです。
[WebMethod]
public static object States()
{
StateProvince[] states = new StateProvince[] { };
ApplicationServiceClient proxy = null;
try
{
proxy = new ApplicationServiceClient();
states = proxy.GetStateProvinces();
}
finally
{
CloseServiceProxy(proxy);
}
return states;
}
WebMethodは、スタンドアロンの開発環境で、またはIISに正常に展開されている場合は問題なく機能しますが、aspxページをSitefinityに展開すると、呼び出されたときに次の例外が発生します。
'/'アプリケーションのサーバーエラー。
不明なWebメソッドStates.aspx。
パラメータ名:methodName
SitefinityがURLを乗っ取って、「。aspx」をポストペンディングしているのか、それともここで何が起こっているのかわかりません。
Webメソッドを呼び出しているjquery呼び出しは次のとおりです。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "Regions.aspx/States",
data: "{}",
success: function(data) {
// implementation omitted
},
error: function(xhr, msg) {
alert(xhr.responseText);
}
});
Fiddlerを使用してリクエストを手動で投稿することで、問題を再現できます。
繰り返しますが、これはSitefinityにデプロイされている場合を除いて、どこでも問題なく機能します。誰か考えがありますか?