2

従来の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にデプロイされている場合を除いて、どこでも問題なく機能します。誰か考えがありますか?

4

2 に答える 2

0

dataType: "json" を使用します。

于 2009-08-16T09:03:32.887 に答える
0

Sitefinity が実行している .NET のバージョンは何ですか? ページ メソッドは最近追加されたものです。

于 2009-08-03T02:02:49.270 に答える