locked
Silverlight 4 DomainServiceでの「The maximum uri length of 2083 was exceeded.」エラー RRS feed

  • 質問

  • DomainContextClassを作成し、コードビハインドで作成されたメソッドを
    以下のようにLoadメソッドを使用して呼び出しています。
     
    [クライアント]
     Dim ctx As PersonDomainContext = New PersonDomainContext()

     Dim q As EntityQuery(Of PersonDto) = tx01DomainContext.GetPersonQuery(param1)

        ctx.Load(q, AddressOf Me.GetPersonQuery_Completed, Nothing)
       
    [サーバー]
    Public Function GetPerson(ByVal param1 As Byte()) As PersonDto
       
    GetPersonByNameQueryのパラメータであるparam1のデータサイズが大きくなると
    「The maximum uri length of 2083 was exceeded.」の例外が発生します。
    IEで使用可能な文字数が2083文字であるため、エラーになっているようなのですが、
    コードビハインドで自動生成されるメソッドで大きいデータサイズのパラメータを
    使用する方法は何かありますでしょうか。

    不特定のメソッドでパラメータのデータ量が大きくなり現象が発生するため、
    大きな修正ができないため困っています。よろしくお願いいたします。

    2010年11月15日 9:34

すべての返信

  • Silverlight で作られている LightSwitch でも同様の症状が出た。





    検索で何故 URI が関係あるのか?と思ったが、
    HTTP GET でクエリを渡してるんじゃないかと推察。

    ならば、検索対象であるプロパティーを少なくして、クエリを短くしてみようとした。
    実際には "Is Searchable" からチェックを外した。





    その結果、エラーは出なくなった。


    似たことが、silverlight でも行えるんじゃないかな。
    • 回答の候補に設定 nastercal 2013年4月11日 0:37
    2012年5月18日 8:43
  • もっと根本的には、GET を使うんじゃなくて POST を使うように変更すべきかもしれない。
    でも、LightSwitch での変更の仕方が分からない。
    2012年5月18日 8:46