- - PR -
画像の表示失敗
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2003-10-27 10:51
お世話になっております。
ASP.NET C# VS2003 で開発しております。 DBに格納されている画像を動的に表示するために Photo.aspxというページを作成し Photo.aspxにQueryStringで画像のIDを渡すと Photo.aspxがDBからデータ取得しResponse.BinaryWrite()で表示しています。 メインのページでは System.Web.UI.WebControls.Imageを複数配置し Image.ImageUrl = "Photo.aspx?ID=0001" のように設定しています。 処理的には問題ないと思うのですが、画像の表示に失敗することが頻繁に起きます。 失敗すると画像のところに×マークで表示されてしまいます。 失敗した画像を右クリックして画像の表示を選択すると、きちんと表示されます。 これはサーバ側のスペックの問題なのでしょうか? なにか回避策はあるでしょうか? よろしくお願いいたします。 |
|
投稿日時: 2003-10-27 12:34
Photo.aspxはセッション変数を利用しますか?
利用しないのであれば、EnableSessionStateをFalseにして試してみてください。 セッションを利用する場合、同一セッションで一度に処理できるのは1つの要求だけと決まっています。 たとえばaspxで作られたページ内にこの方法で画像を3つ貼り付けたとした場合、ページを処理するaspxが終了し、前2つの画像を出力するaspxが終了して、ようやく3番目の画像の処理が開始されます。 つまり前の処理が長引いた場合、後の処理がつかえてブラウザは待たされることになり、最悪タイムアウトで画像が表示されないということになります。 セッションとは独立して動作するページであれば並列に動作できるので、このような直列化の問題は発生しなくなり、パフォーマンスの向上につながります。(向上というより、それが本来あるべき姿ですが。) はずしてたらごめんなさい |
|
投稿日時: 2003-10-27 16:03
原因は私の使っているSleipnir(タブ型ブラウザ)が
レジストリのMaxConnectionsPerServerを16に設定していて 同時に16のコネクションをはろうとしていたためでした。 ローカルのIISはコネクション数10しか許可していないために コネクションの限界数を超えてしまっていたようです。 Gordie様のレスは初めて知った内容だったので、とても勉強になりました。 Gordie様ありがとうございました。 |
1
