C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: ASP.NETで特定の別ウィンドウが表示できなくなる


(過去ログ 159 を表示中)

[トピック内 10 記事 (1 - 10 表示)]  << 0 >>

■92400 / inTopicNo.1)  ASP.NETで特定の別ウィンドウが表示できなくなる
  
□投稿者/ sim (1回)-(2019/09/21(Sat) 09:12:59)

分類:[ASP.NET (VB)] 

最初に謝っておきます。ASP.NETの知識がほとんどなく、
今回質問させていただく内容も別の人にとにかく調べてくれと依頼されたもので
理解できていないまま質問させていただきます。申し訳ありません。



Main.aspxにユーザ一覧を表示するボタンがあります。

ボタンを押すと、Javascriptでshow.windowmodalでUserList.aspxを表示します。

Main.aspxのユーザー一覧表示Javascript抜粋

        // ================================
        // ユーザー一覧ボタン処理
        // ================================
        function btnUser_Clicked() {
            var ret = window.showModalDialog("UserList.aspx", window, "dialogWidth=500px;dialogHeight=600px;center;scroll=0;");
        }

このUserList.aspxが通常は、表示されるのですが、
たまに表示されなくなります。

その後、パソコンを再起動するまで、何度ユーザ一覧ボタンを押しても表示されなくなります。

このような現象で考えられる原因があれば教えてください。



また、UserList.aspxで
<link rel="stylesheet" href="css/common.css" type="text/css" />でcommon.cssを使用しているのですが、

IISのログを見ると、UserList.aspxのログはあるのですが、common.cssのログがありません。
通常は、common.cssのログがあります。

これが関係ある可能性はありますか?

引用返信 編集キー/
■92401 / inTopicNo.2)  Re[1]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ WebSurfer (1918回)-(2019/09/21(Sat) 11:17:04)
No92400 (sim さん) に返信

以下は問題に対する直接の答えではなく代替え案の提案で、提案しても質問者さんの
立場で決められる話ではなさそうですが・・・

showModalDialog はセキュリティの問題があるとのことで非推奨となっています。実
際、すでに現在は IE 以外では動かないはずです。詳しくは showModalDialog をキー
ワードにググるとヒットする記事を読んでください。例えば下記:

window.showModalDialog
https://developer.mozilla.org/ja/docs/Web/API/Window/showModalDialog

なので、この際 showModalDialog を使うのは止めて、別の手段に移行することを考え
てはいかがですか。例えば:

(1) ASP.NET Web Forms アプリなら Ajax Control Toolkit の ModalpopupEntender

ModalPopup Demonstration
https://ajaxcontroltoolkit.devexpress.com/ModalPopup/ModalPopup.aspx

(2) jQuery UI の Diaog

Dialog
https://jqueryui.com/dialog/

(3) Bootstrap JavaScript の Modal

Modals modal.js
https://getbootstrap.com/docs/3.3/javascript/#modals
引用返信 編集キー/
■92402 / inTopicNo.3)  Re[2]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ sim (2回)-(2019/09/21(Sat) 11:50:29)
WebSurferさん返信ありがとうございます。

おっしゃる通りなのですが、window.showModalDialogが原因であれば変更できますが、原因でない場合は変更できません。
原因が特定できない際は、提案してみたいと思います。



引用返信 編集キー/
■92403 / inTopicNo.4)  Re[1]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ WebSurfer (1919回)-(2019/09/21(Sat) 11:55:10)
No92400 (sim さん) に返信


書き忘れましたが・・・

> ASP.NETの知識がほとんどなく、
> 今回質問させていただく内容も別の人にとにかく調べてくれと依頼されたもので
> 理解できていないまま質問させていただきます。

ということから、今質問に書いてある情報が質問者さんが提供できる全てで「質問
に書かれていることに何か心当たりはないか?」的な質問と理解しています。

その質問に対しては、残念ながら自分には心当たりはありません。お役に立てずす
みませんが、心当たりのある人が現れるのをお待ちください。

もう一つ、余計なお世話かもしれませんが・・・

> たまに表示されなくなります。

ということは、質問に書かれている現象に 100% の再現性は無いようですね。しかも、
質問者さんの独自の環境の問題に起因するような気がします。

とすると、同じ問題に遭遇して解決した人が現れるのを期待して待つより、少し待
ってみて答えが無ければ、質問者さんの方で問題がどこにありそうか切り分けをし
て、問題を 100% 再現するに十分な情報を提供できるような作業を「別の人」と進
めてみてはいかがでしょう。

問題を 100% 再現できるサンプルコードを提供してもらえれば、ここの回答者・閲
覧者の方でも問題の原因を追究できるので、有用な回答が得やすいと思います。
引用返信 編集キー/
■92404 / inTopicNo.5)  Re[1]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ WebSurfer (1920回)-(2019/09/21(Sat) 12:07:12)
No92400 (sim さん) に返信

小出しですみません。

> また、UserList.aspxで
> <link rel="stylesheet" href="css/common.css" type="text/css" />でcommon.cssを使用しているのですが、
>
> IISのログを見ると、UserList.aspxのログはあるのですが、common.cssのログがありません。
> 通常は、common.cssのログがあります。
>
> これが関係ある可能性はありますか?

ログがあるというのは、ブラウザから common.css の要求が出て応答が返されているということですか?

であれば、それについては想像ですが、ブラウザに common.css キャッシュされているからだと思います。
.aspx ファイルはデフォルト設定(キャッシュコントロールのコードは一切書いてないという意味)では
ブラウザのキャッシュは利用せず、必ず要求が出るので「ログがある」という結果になっているのだと思
います。

> 何度ユーザ一覧ボタンを押しても表示されなくなります。

というときにも「ログがある」のであれば、ブラウザの要求とサーバーの応答は問題ないが、応答を受けた
ブラウザ側の処置に問題がありそうということのように思えます。

Fiddler などのツールを使って、要求・応答をキャプチャして中身を調べると、そこに何かヒントが見つか
るかもしれません。

引用返信 編集キー/
■92405 / inTopicNo.6)  Re[2]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ WebSurfer (1921回)-(2019/09/21(Sat) 12:11:55)
No92404 を訂正させてください。

ログがあるというのは、ブラウザから common.css の要求が出て応答が返されているということですか?

(誤)であれば、それについては想像ですが、ブラウザに common.css キャッシュされているからだと思います。
   ↓↓↓
(正)であれば、想像ですが、「ログがない」のは、ブラウザに common.css がキャッシュされているからだと思います。

引用返信 編集キー/
■92406 / inTopicNo.7)  Re[3]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ sim (3回)-(2019/09/21(Sat) 13:05:53)
No92405 (WebSurfer さん) に返信
色々アドバイスありがとうございます。

心当たりがないか。まさにそうです。

再現性についても殆どありません。去年に1回、今年に入って1回です。(気づいたのがそれだけなのかもしれませんが)

>ログがあるというのは、ブラウザから common.css の要求が出て応答が返されているということですか?
>
>(正)であれば、想像ですが、「ログがない」のは、ブラウザに common.css がキャッシュされているからだと思います。
>.aspx ファイルはデフォルト設定(キャッシュコントロールのコードは一切書いてないという意味)では
>ブラウザのキャッシュは利用せず、必ず要求が出るので「ログがある」という結果になっているのだと思
>います。

通常ユーザ一覧ボタンを押して、UserList.aspxを開くと、
IISログでは、UserList.aspxを読み込んだログと、
common.cssを読み込んだログが残ります。
何度開いてもその都度2件のログが残ります。

ですが、本現象が発生後は、UserList.aspxを読み込んだログ1件しかなくなってしまいます。

情報の追加になりますが、
本現象発生時のUserList.aspxのログにWindows状態コードが64となっていました。
調べるとクライアントが正常に取得した応答がなかった場合などが該当するようです。

クライアントがUserList.aspxを正常に取得できなかったのだと解釈したのですが、
この後、ユーザ一覧ボタンを押すと、必ず本現象が必ず発生するようになります。


キャッシュか何かが残ってこのような現象になるのでしょうか。














引用返信 編集キー/
■92407 / inTopicNo.8)  Re[4]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ WebSurfer (1922回)-(2019/09/21(Sat) 13:31:44)
No92406 (sim さん) に返信

先にも書きましたが、Fiddler などのツールを使って、要求・応答をキャプチャして中身を調
べると、そこに何かヒントが見つかるかもしれません。調べてください。

一年に一回程度しか起こらないのでは、問題が起こった時の状態を調べるのは無理っぽいですが、
少なくとも正常時はどうなっているかは分かるはず。キャッシュコントロールがどうなっている
かもそれで分かるはず。

上の私のレスのキャッシュ云々の話も今は私の想像に過ぎません。自分で実際にどうなっている
か調べてください。
引用返信 編集キー/
■92408 / inTopicNo.9)  Re[4]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ 魔界の仮面弁士 (2385回)-(2019/09/21(Sat) 14:38:57)
No92406 (sim さん) に返信
> 本現象発生時のUserList.aspxのログにWindows状態コードが64となっていました。
> 調べるとクライアントが正常に取得した応答がなかった場合などが該当するようです。

作成されたページに不具合があって、何らかの条件を満たすことで、
その btnUser_Clicked が実行されない状態に陥っているのだと思います。


showModalDialog ということで、恐らく Internet Explorer をお使いかと思いますが、
ブラウザー側で何らかのスクリプトエラーが発生していないか、
デバッガー(F12 開発者ツールまたは Visual Studio)でチェックしてみてください。
https://support.microsoft.com/ja-jp/help/2910830
引用返信 編集キー/
■92409 / inTopicNo.10)  Re[4]: ASP.NETで特定の別ウィンドウが表示できなくなる
□投稿者/ WebSurfer (1923回)-(2019/09/22(Sun) 11:14:10)
No92406 (sim さん) に返信

まずは Fiddler でキャッシュコントロールを調べるのを先にすることをお勧め
したいですが、IIS ログの win32 status の話が出ているので気になるところを
ご参考までに書いておきます。

すでに質問者さんの方でも調べたかもしれませんが、以下の記事に win32 status
の一覧があり、

System Error Codes
https://docs.microsoft.com/ja-jp/windows/win32/debug/system-error-codes

status code 64 は以下とのことです。

ERROR_NETNAME_DELETED
64 (0x40)
The specified network name is no longer available.

「ネットワークが使えなくなった」と言っていますが、それだけでは上の記事にも

"Each one can occur in one of many hundreds of locations in the system.
Consequently the descriptions of these codes cannot be very specific.
Use of these codes requires some amount of investigation and analysis."

と書いてありますようには原因は分からず、さらなる情報の収集と調査が必要だと
思います。

例えば、以下の記事のあるように、IIS ログの他の項目もチェックしていろいろ
可能性を探り、

What does sc-status = 200 and sc-win32-status = 64 mean, and why is time-taken large?
http://www.it-notebook.org/iis/article/scwin32status_64_scstatus_200.htm

Scenario 1, Scenario 2 というような仮説を立てて、それに基づいて調査して原因
を特定するとか。

でも、一年に一回程度しか起こらないのではそれもかなり無理っぽいです。

記事の Conclusion に書いてあるように don't bother about it が正解かもしれま
せん。

もしくは、No92401 に書いたように、この際 showModalDialog を使うのは止めて、
別の手段に移行し、現時点でやれることはやったということで、ユーザーに納得し
てもらうとか。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -