2012-02-03 8 views
1

私は2つのサイト、1つはデザインが完了し、もう1つはImages.Iを返すアプリケーションを持っていて、ジェネリックタイプに値を格納していて、それをクエリ文字列に変換して、変更。コードは悪くなっていて、私はあらゆる場所でさまざまなデータに苦労していました(私はいくつかのオブジェクトがあり、ほとんど同じではありません)。私はデータが常に違うタイプ。LosFormatterとデータのシリアル化

まあ、今私は、オブジェクトのクラスを作成し、すべてが完璧ですが、今、私はLosFormatterと私のオブジェクトをシリアル化し、同様にそれを接着するとき:

<img id="img" src="Image.aspx?image=/wEy8AgAAQAAAP////8BAAAAAAAAAAwCAAAAQkxpa2VNeVN0dWZmLCBWZXJzaW9uPTEuMC4wLjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49bnVsbAwDAAAAUVN5c3RlbS5EcmF3aW5nLCBWZXJzaW9uPTQuMC4wLjAsIEN1bHR1cmU9bmV1dHJh..." </img> 

何も起こりません。ページ "Image.aspx"は呼び出されず、エラーも発生しません。私は、Page_Loadのためにブレークポイントを設定しようと、彼らはhit.Everythingは、一般的なタイプでうまく働いていない飽きないし、「正常な」クエリstring.Hereは私LosFormatterコード:

public void RedrawImage() 
{    
    System.Web.UI.LosFormatter formatter = new System.Web.UI.LosFormatter(); 
    StringWriter writer = new StringWriter(); 
    formatter.Serialize(writer,myObject); 
    img.ImageUrl = "~/Image.aspx?image=" + Server.HtmlEncode(writer.ToString()); 
} 

は、誰もが任意の同様の問題がありましたか?

+0

連結されたImageUrlが大きすぎてURLの最大長を超えている(したがってデータが無効です)可能性はありますか? http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url –

+0

AvarageのURLは約1600文字になるので、私はそうは思わない。 – formatc

答えて

1

クエリ文字列のエスケープされていない文字が問題の可能性があります。 Server.HtmlEncodeの代わりにServer.UrlEncodeを呼び出してみてください。

更新:投稿されたコメントに基づいて、クエリ文字列が明らかに長すぎます。あなたは、Web.configファイルに制限を増やすことができます。

<httpRuntime maxQueryStringLength="2048" /> 

http://www.asp.net/whitepapers/aspnet4を参照してください。

+0

私はちょうど実現し、それをHttpUtilty.UrlEncodeでも、ページは呼び出されません。 – formatc

+0

ブラウザでImage.aspxに直接移動してクエリ文字列を表示しないと、ページが呼び出されますか? –

+0

img.ImageUrl = "〜/ Image.aspx"を変更すると呼び出されます。 – formatc

関連する問題