目次

ScriptManagerを用いて長い文字列をサービスに入力すると「文字列の長さがmaxJsonLengthプロパティで設定されている値を超えています。」エラーが発生する - ASP.NET

ScriptManagerを用いてAjaxでサービスを呼び出す際に、長い文字列(大きいデータ)をサービスメソッドに入力すると、
JSON JavaScriptSerializerを使用したシリアル化または逆シリアル化宙にエラーが発生しました。
文字列の長さがmaxJsonLengthプロパティで設定されている値を超えています。
エラーが発生することがあります。


このエラーは、アプリケーションで設定されているmaxJsonLengthプロパティの規定値より長いデータが入力されたためです。(規定値は102400 文字です。)

対策

maxJsonLengthプロパティのサイズを変更することでこの問題を回避できます。ASP.NETアプリケーションのWeb.Configファイルに以下を記載します。
<system.web.extensions>
 <scripting>
    <webServices>
      <jsonSerialization maxJsonLength="1024000000" />
    </webServices>
  </scripting>
</system.web.extensions>

Web.config例

Web.configファイルの例です。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
    </system.web>
  
    <system.web.extensions>
      <scripting>
        <webServices>
          <jsonSerialization maxJsonLength="1024000000" />
        </webServices>
      </scripting>
    </system.web.extensions>
  
</configuration>
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2024-01-06
作成日: 2012-04-13
iPentec all rights reserverd.