Webシステム開発はお任せください

↑Topへ

開発ブログ

IE11のブラウザでasp.netで不具合(2013/10/30)

IE11のブラウザでasp.netで不具合がまたもや発生

【状況】

ログイン処理でIE以外のブラウザとIE8未満のブラウザの場合、エラー画面を表示させていたが、IE11の場合IEと見なされずにエラー画面が表示されてログインできないようになりました。

 

【発生環境】

Windows2008Server + asp.net + Internet Explorer11

 

asp.netのプログラム内で下記のようなチェックを行っていたのですが、なんとRequest.Browser.Browserで返される値が'IE'ではなくて

'Mozilla'が返されるようになっているではないですか。

Dim browser As String = Request.Browser.Browser
Dim major As Integer = Request.Browser.MajorVersion()

'ログ出力処理
Dim log As Log = log.getInstance
'ブラウザの確認を行いIE8以上で無ければエラー画面にリダイレクトを行う
If browser <> "IE" Then    ←★ この判定でIE10以下は'IE'と返されるがIE11だと'Mozilla'が返される ★
        log.OutputLog(enmLogLevel.ERR, CNS_FRAMEWORK_ERR_MESSAGE_010 & String.Format(" browser:{0}", browser))
  Response.Redirect(SESSION_BROWSER_ERR_PAGE, True)
Else
 If major < 8 Then
     log.OutputLog(enmLogLevel.ERR, CNS_FRAMEWORK_ERR_MESSAGE_010 & String.Format(" major:{0}", major))
  Response.Redirect(SESSION_BROWSER_ERR_PAGE, True)
 End If
End If

 

いままでIEのユーザエージェント文字列は

 

【IE8】

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)

 

【IE9】

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

 

【IE10】

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)

だったのですが

 

【IE11】

Mozilla/5.0 (IE 11.0; Windows NT 6.3; Trident/7.0; .NET4.0E; .NET4.0C; rv:11.0) like Gecko

 

というように'MSIE'から'IE'に変わってしまっています。

IE11のブラウザでasp.net(.net framework 4)で不具合(2013/10/30)

IE11のブラウザでasp.net(.net framework 4)で開発されたサイトにアクセスすると動作しなくなるケースがあります。

 【状況】
昨日windows8.1のマシンから前述のシステムへアクセスしたところ「__doPostBack' は定義されていません。」というエラーが発生。
サーバー側のクリック イベントが起動されません。

 

 【発生環境】
Windows2008Server + asp.net(.net framework 4) + Internet Explorer11

半年くらい前にもframework3.5 + Internet Explorer10でそのようなことがありました、サーバー側のユーザーエージェントの判定が今までIE5~9で数字部分の判定が正規表現チェック(^[5-9])で良かったのですが、IE10になったため当該正規表現では誤判定しているものでした。

 

IEもasp.netもMicrosoftのプロダクトなのでもう少しきちんとチェックして欲しいものです。

 

で今回はサーバー側でIE11を未知のブラウザと認識しCookeiが正しく処理されないとのこと。

 

googleで検索してみると

 

http://support.microsoft.com/kb/2836939

 

がひっかかりました、早速サーバーにて実行し問題解決。