none
Webパーツのパーソナル化について IE11 .Net4.5 RRS feed

  • 質問

  • Webパーツのパーソナル化をして実装したものが、IE11上でパーツの移動ができないことについて

    以下、現象が起きた環境です。

      ・.NetのFrameworkは4.5です。
      ・OSはWindows8.1です。
      ・SDK:VisualStudio2013です。

    手前で調査したところ、.NET4.0にはKB(http://support.microsoft.com/kb/2600088)があるようですが、

    .NET4.5に相当するKBが見当たりません。

    一応、F12キーで開発者ツールを開き、エミュレーションのドキュメントモード、ユーザーエージェント文字列をIE8にすると

    Webパーツの移動は確認できましたが、IE11で対応できる方法が知りたいのです。

    どなたかわかる方、お知恵を貸して下さい。


    2014年11月6日 5:59

回答

  • 参考にされている KB は ASP.NET による IE10 の判定の誤りの修正の話ですが、そのことは理解されているでしょうか?

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

    詳しくは以下のページを見てください。

    ASP.NET の IE10 対応について
    http://blogs.msdn.com/b/d99/archive/2013/08/02/10438994.aspx

    IE11 でも同様な問題がありましたが、これも Windows Update で解決されているはずです。

    参考にされている KB は上で紹介したページで言うと解決策 1 の hotfix らしいですが、これを適用せずとも、Windows Update がきちんと行われていればすでに解決済みのはすです。

    もし、解決されてなければ、上に紹介したページにも書いてあるように hotfix を当てるのはいろいろ問題があるので、Windows Update で対応することをお勧めします。

    ただし、すでに修正済みかもしれませんので、HttpBrowserCapabilities オブジェクトを取得してその中身を見て、現在のブラウザ判定がどのようになっているか調べることをお勧めします。

    HttpBrowserCapabilities クラス
    http://msdn.microsoft.com/ja-jp/library/system.web.httpbrowsercapabilities(v=vs.110).aspx


    なお、「パーツの移動ができない」という原因がブラウザ判定の間違いによるものかどうかまでは自分は調べてません。(そのあたりは質問者さんが、ブラウザ判定の間違いが原因であると調べた上で質問されていると理解します)

    • 回答としてマーク 星 睦美 2014年12月9日 2:06
    2014年11月6日 6:58

すべての返信

  • 参考にされている KB は ASP.NET による IE10 の判定の誤りの修正の話ですが、そのことは理解されているでしょうか?

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

    詳しくは以下のページを見てください。

    ASP.NET の IE10 対応について
    http://blogs.msdn.com/b/d99/archive/2013/08/02/10438994.aspx

    IE11 でも同様な問題がありましたが、これも Windows Update で解決されているはずです。

    参考にされている KB は上で紹介したページで言うと解決策 1 の hotfix らしいですが、これを適用せずとも、Windows Update がきちんと行われていればすでに解決済みのはすです。

    もし、解決されてなければ、上に紹介したページにも書いてあるように hotfix を当てるのはいろいろ問題があるので、Windows Update で対応することをお勧めします。

    ただし、すでに修正済みかもしれませんので、HttpBrowserCapabilities オブジェクトを取得してその中身を見て、現在のブラウザ判定がどのようになっているか調べることをお勧めします。

    HttpBrowserCapabilities クラス
    http://msdn.microsoft.com/ja-jp/library/system.web.httpbrowsercapabilities(v=vs.110).aspx


    なお、「パーツの移動ができない」という原因がブラウザ判定の間違いによるものかどうかまでは自分は調べてません。(そのあたりは質問者さんが、ブラウザ判定の間違いが原因であると調べた上で質問されていると理解します)

    • 回答としてマーク 星 睦美 2014年12月9日 2:06
    2014年11月6日 6:58
  • 【追伸】

    先のレスで、

    > HttpBrowserCapabilities オブジェクトを取得してその中身を見て、現在の
    > ブラウザ判定がどのようになっているか調べることをお勧めします。

    と書きましたが、その具体的な方法が書かれたページがありましたので、ご参考に連絡しておきます。

    方法 : ASP.NET Web ページでブラウザの種類を検出する
    http://msdn.microsoft.com/ja-jp/library/3yekbd5b(v=vs.100).aspx


    改修方法ですが、もし、Windows Update はかけたくない、ブラウザ判定だけ解決すればすべて OK ということであれば、先に提示したページ「ASP.NET の IE10 対応について」に書いてある対処方法 4 「アプリケーションに IE10 対応のブラウザ定義を加える」がいいと思います。

    2014年11月6日 12:45
  • 返答ありがとうございます。

    正直、原因が何であるかは特定できていない状況です。

    今は原因でありそうなものから潰していこうと思っている次第でして、他に原因があれば

    それも知りたいと思っております。

    当方のPCはWindowsアップデートは最新の状態でありますので、

    参考のサイトを拝見し、Webパーツが移動ができるようになるか確認してここに報告したいと思います。


    2014年11月10日 2:04
  • IE11 を使っている場合、最初の質問にあった、

    > F12キーで開発者ツールを開き、...、ユーザーエージェント文字列をIE8にする

    という操作によって、ブラウザから Web サーバー送信される要求ヘッダ内の User-Agent: xxx の xxx が、

    Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

    から、

    Mozilla/4.0 (Windows; MSIE 8.0; Windows NT 6.0)

    に変わりませんか?(Fiddler2 などのキャプチャツールを使うと調べられます)

    それにより「Webパーツの移動は確認できました」ということであれば、IE8 であるというブラウザ判定が正しく行われ、その結果 Web パーツの移動に必要なクライアントスクリプト等が Web サーバーからブラウザに送信されたということだと思うのですが。

    > 当方のPCはWindowsアップデートは最新の状態でありますので、

    ということですと、IE11 の User-Agent で正しくブラウザ判定ができないというのは解せないですが、とにかく前のレスで紹介した以下の記事のコードを実装したページを作って、IE11 のブラウザ判定が正しく行われているかを確認してはいかがですか?

    方法 : ASP.NET Web ページでブラウザの種類を検出する
     http://msdn.microsoft.com/ja-jp/library/3yekbd5b(v=vs.100).aspx

    ASP.NET が IE11 のブラウザ定義を持ってないと downlevel と判定されるはずです。

    2014年11月10日 3:17
  • quesuq さん、こんにちは。フォーラム オペレーターの星 睦美です。

    SuferOnWww さんからの返信をトラブルシューティングの参考にしていただけたのではないかと思います。
    役立つ情報をフォーラムで共有できるように、今回は私から[回答としてマーク] させていただきました。
    次回フォーラムでの回答が参考になりましたら投稿者から[回答としてマーク] いただければ幸いです。

    それでは今後ともフォーラムをお役立てください。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2014年12月9日 2:11