11

私の ASP.NET Web サイト内では、次のように Jquery を使用して Web メソッドを呼び出しています。

 $.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: "{'param1': '" + param1 + "','param2': '" + param2+ "' }",
    dataType: 'json',
    url: "Default.aspx/TestMethod",       
    error: function (jqXHR, textStatus, errorThrown) {
        alert("error: " + textStatus);                     
    },
    success: function (msg) {
        document.getElementById("content").innerHTML = msg.d;
    }
});  

Web メソッドの定義は次のとおりです。

[System.Web.Services.WebMethod]
public static String TestMethod(String param1, String param2)
{       
     String to_return = /* result of operations on param1 and param2 */;        
     return to_return;
}

私の結果は、HTML コードを含む文字列です。弦が小さけれ
ば完璧に機能します。 しかし、それは私に次のようなエラーを与えています:to_return

500 内部サーバー エラー 6.22 秒

FireBug in Response を使用して調査しようとしましたが、次のように表示されます。

{"メッセージ":"リクエストの処理中にエラーが発生しました。","StackTrace":"","ExceptionType":""}

Visual Studio でブレークポイントを使用して、to_return文字列をテキスト ファイルにコピーしました。ファイルのサイズは 127 KB になりました。
何がうまくいかなかったのでしょうか?

4

1 に答える 1

23

おそらくMaxJsonLengthを超えています。デフォルトでは、102400文字であり、文字列はこれより大きくなっています。この制限はweb.configで増やすことができます。

<configuration>
    ... 
    <system.web.extensions>
        <scripting>
            <webServices>
                <jsonSerialization maxJsonLength="300000" />
            </webServices>
        </scripting>
    </system.web.extensions>
    ...
</configuration> 
于 2012-12-17T14:56:03.273 に答える