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

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

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

Re[4]: 例外スローについて


(過去ログ 178 を表示中)

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

■102022 / inTopicNo.1)  例外スローについて
  
□投稿者/ 困っております。 (1回)-(2023/06/06(Tue) 12:30:08)

分類:[ASP.NET (VB)] 

よろしくお願いします。

microsoft visual studio2005

IEからedgeに変更中ですが、検索ボタンを押して
データを画面に表示後、取り消し、登録、画面遷移ボタンを押した時、

「System.Web.HttpUnhandledException: 種類 'System.Web.HttpUnhandledException' の例外がスローされました。 ---> System.Exception: 270.0000305175781 は Int32 の有効な値ではありません。 ---> System.FormatException: 入力文字列の形式が正しくありません。」

のエラーが発生しています。(270.0000305175781の部分は都度かわっています。)

データに問題ないと思われ、検索データが多い時(100件以上)は必ず起こっており、
同じデータで検索データが少ない時はエラーが発生していない状態です。
試しに取り消しボタンのクリック時の処理を全てコメント化しても同じ現象が発生しました。

edge用に何か設定が必要なのでしょうか。
よろしくお願いします。
引用返信 編集キー/
■102023 / inTopicNo.2)  Re[1]: 例外スローについて
□投稿者/ 魔界の仮面弁士 (3650回)-(2023/06/06(Tue) 12:59:15)
No102022 (困っております。 さん) に返信
> データを画面に表示後、取り消し、登録、画面遷移ボタンを押した時、
その処理で、どのようなコードが実行されていて、
その中のどの行で問題が発生しているのかを
例外オブジェクトの StackTrace 等から追跡できないでしょうか。


> System.Exception: 270.0000305175781 は Int32 の有効な値ではありません。 ---> System.FormatException: 入力文字列の形式が正しくありません。」
たとえば、
 x = CInt("270.0000305175781")
は x = 270 として処理されますが、
 x = Convert.ToInt32("270.0000305175781")
 x = Integer.Parse("270.0000305175781")
などの場合には、FormatException 例外が発生しますね。


> 270.0000305175781の部分は都度かわっています。
それはクライアント側から送出されてくる値なのでしょうか。
それともサーバー側で生成・取得されている値なのでしょうか。

Edge の開発者ツール(Ctrl + Shift + I) を起動して、[ネットワーク]タブで
通信内容をトレースし、270.0000305175781 に相当する値が
やり取りされていないかを確認してみてください。
引用返信 編集キー/
■102024 / inTopicNo.3)  Re[2]: 例外スローについて
□投稿者/ 魔界の仮面弁士 (3651回)-(2023/06/06(Tue) 13:33:58)
2023/06/06(Tue) 13:49:52 編集(投稿者)

No102022 (困っております。 さん) に返信
> microsoft visual studio2005
.NET Framework 2.0 世代の開発環境ですよね。
流石に、開発環境も含めて刷新すべきかと…。


> IEからedgeに変更中ですが、検索ボタンを押して
世代的に、HTML LS (HTML5) に準拠したページでは無さそうですね。

Internet Explorer のドキュメント モードはどうなっていましたか?
https://furoshiki.hatenadiary.jp/entry/ie_documentmode


エラーメッセージで検索してみると、IE10 / IE11 において
ImageButtonコントロールで、UpdatePanelの非同期ポストバックを発生させると
System.Web.HttpUnhandledException ---> System.FormatException
のエラーになる…といった事例がありました。
(ドキュメント モードを IE9 以下に設定すると、仮回避できるらしい)

https://social.msdn.microsoft.com/Forums/en-US/abc59878-8c1c-4707-afaa-6b0e4cb7085f/imagebuttons-not-working-in-ie10
https://kiyokura.hateblo.jp/entry/20130128/p1
http://tukaenai-pg.cocolog-nifty.com/blog/2013/03/aspnet-ie10-a41.html

変動する 270.0000305175781 という値が、画像ボタンをクリックした
xy 座標の値だと仮定すれば、この事象が当てはまりそうに思います。

そしてこの事象は .NET Framework 2.0〜4.0 の ASP.NET では発生するものの
.NET Framework 4.5 の ASP.NET だと発生しないようです。

とはいえ、4.5 のサポートも終了していますので、
Visual Studio を現行バージョンに入れ替えたうえで、
.NET Framework 4.7.2 や .NET Framework 4.8 環境向けに
ビルドしなおしてみることも検討してみてください。

もしくは、ImageButton の代わりに Button を使うようにします。


上記 URL(MSDN Forum)でやり取りされている回避策のようにすれば
.NET Framework 2.0 + ImageButton のままでも動作させられるような
回避コードを仕込めるかもしれませんが…流石に 2.0 環境は古すぎて
Edge 対応のパッチを見つけるのは難しいかもしれません。
(理解した上で、自前で書き下ろす必要があるかも)
引用返信 編集キー/
■102025 / inTopicNo.4)  Re[3]: 例外スローについて
□投稿者/ 困っております。 (3回)-(2023/06/06(Tue) 15:23:50)
情報ありがとうございます。

おっしゃる通り開発環境は、.NET Framework 2.0 になっています。
改修期間が短い為、バージョンを上げずにEdge対応する事になっております。

表を選択後、ボタンを押してはいますが、
座標の計算はしていないのは確認しており、
ボタンの種類はButtonになっています。


web.configファイル内に
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-UA-Compatible" value="IE=7" />
<add name="X-Links" value="WEB3" />
</customHeaders>
</httpProtocol>
<httpRedirect enabled="false" />
</system.webServer>
となっており、

<add name="X-UA-Compatible" value="IE=7" />
の部分がドキュメント モードを IE9 以下に設定でよろしいでしょうか。
又、この状態で例外エラーが発生しておりますので、
value="IE=7"では古いからなのでしょうか。

よろしくお願いします。
引用返信 編集キー/
■102026 / inTopicNo.5)  Re[4]: 例外スローについて
□投稿者/ 魔界の仮面弁士 (3652回)-(2023/06/06(Tue) 15:44:31)
2023/06/06(Tue) 15:56:26 編集(投稿者)

No102025 (困っております。 さん) に返信
> <add name="X-UA-Compatible" value="IE=7" />
> の部分がドキュメント モードを IE9 以下に設定でよろしいでしょうか。

はい。そして X-UA-Compatible は Internet Explorer でしか通用しません。

また、IE であっても長らく非推奨とされてきた方法ですし、
IE 以外のブラウザーではこのオプションが無視されます。


まずは X-UA-Compatible 無しでも動作するよう、見直してみてください。
その場合、CSS や JavaScript の解釈が変更されることになるため、
単純移植というわけにはいかず、それなりに検証工数や開発工数が
発生する可能性があります。
引用返信 編集キー/
■102027 / inTopicNo.6)  Re[3]: 例外スローについて
□投稿者/ WebSurfer (2702回)-(2023/06/06(Tue) 15:49:53)
No102024 (魔界の仮面弁士 さん) に返信

> エラーメッセージで検索してみると、IE10 / IE11 において
> ImageButtonコントロールで、UpdatePanelの非同期ポストバックを発生させると
> System.Web.HttpUnhandledException ---> System.FormatException
> のエラーになる…といった事例がありました。
> (ドキュメント モードを IE9 以下に設定すると、仮回避できるらしい)
>
> https://social.msdn.microsoft.com/Forums/en-US/abc59878-8c1c-4707-afaa-6b0e4cb7085f/imagebuttons-not-working-in-ie10
> https://kiyokura.hateblo.jp/entry/20130128/p1
> http://tukaenai-pg.cocolog-nifty.com/blog/2013/03/aspnet-ie10-a41.html

上の記事の IE10 を IE9 にしたら問題が回避できたというのは、多分 ASP.NET のブラウザ定義の
問題だと思われます。

昔、IE10 がリリースされた直後に、IE10 で ASP.NET ページにアクセスすると __doPostBack() な
どが定義されてないというスクリプトエラーが出たということがありました。この原因は、IE10 の
リリース直後にはまだ ASP.NET に IE10 のブラウザ定義がなかったからです。その後の Windows
Update で IE10 のブラウザ定義が追加され、問題が解消されたという経緯があります。

詳しくは以下の記事を見てください。

ブラウザ定義ファイル
http://surferonwww.info/BlogEngine/post/2014/03/04/browser-definition-files.aspx

さらに、ASP.NET 2.0, 3.0, 3.5 では Safari, Chrome のブラウザ定義に問題があって、Menu コン
トロールが html コードにレンダリングされた時の結果が IE, Firefox とは異なるとか、
MaintainScrollPositionOnPostback プロパティが働かないという問題があります。未確認ですが、
Edge も Chrome と同じだろうと思います (User-Agent で判定するので)。

詳しくは以下の記事を見てください。

Safari は downlevel browser?
http://surferonwww.info/BlogEngine/post/2010/07/30/Safari-is-downlevel-browser.aspx

ポストバック前後でスクロール位置維持
http://surferonwww.info/BlogEngine/post/2016/01/11/enable-maintainscrollpositiononpostback-on-chrome-and-safari.aspx

上記がなぜ FormatException につながるのかは分かりませんが、ASP.NET 2.0, 3.0, 3.5 のブラ
ウザ定義の問題が影響しているかもしれないことは、考えた方が良さそうです。

引用返信 編集キー/
■102028 / inTopicNo.7)  Re[4]: 例外スローについて
□投稿者/ WebSurfer (2703回)-(2023/06/06(Tue) 16:27:51)
No102025 (困っております。 さん) に返信

ClientTarget を利用すると ASP.NET によるブラウザの判定を自由に設定できます。
詳しくは以下の記事を見てください。

ClientTarget の利用
http://surferonwww.info/BlogEngine/post/2014/06/14/settings-of-clienttarget-property.aspx

Edge に対する ASP.NET 2.0, 3.0, 3.5 のブラウザ定義の問題が FormatException に
影響しているのであれば、web.config で ClientTarget に IE9 の User-Agent を設定し、
問題のページの @ Page ディレクティブの ClientTarget 属性でそれを指定することによ
り、Edge でアクセスしても ASP.NET に IE9 とブラウザ判定させることにより問題を回避
できるかもしれません。


引用返信 編集キー/
■102029 / inTopicNo.8)  Re[4]: 例外スローについて
□投稿者/ WebSurfer (2704回)-(2023/06/08(Thu) 09:57:07)
No102025 (困っております。 さん) に返信

質問者さん、そのご無言ですが、回答者からレスがされているのでそれらに
対するフィードバックを返してください。

役に立った/立たなかった/それ以前にお前の言ってることは意味不明ぐらい
のフィードバックならすぐに返せるのでは?

もし、IE や Firefox で試して問題が回避できるなら、上の No102028 で私
が書いた ClientTarget を試して結果を連絡してもらえるとありがたいです。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -