1

現在、非常に一貫性のない問題に直面しています。基本的に、私は自分のアプリケーションにブラウザー検出ルーチンを持っています。これは、着信要求でユーザー エージェントをスニッフィングし、サポートされているブラウザーからのものである場合は、アプリケーションの読み込みを続行します。ただし、サポートされていない場合は、「Notsupported.html」にリダイレクトされます。

数か月前にこのコードを書いたとき。それは私のマシンでうまく機能していました。私はそれを提出しましたが、Dev Server でうまく機能しています。テストサーバーに最適。誰もこれに関する問題を見たことがありません。

現在、ライブ環境に移植すると、ユーザーが最初にロードしたときに、ユーザーのマシンがしばらくアイドル状態になっていると、browsernotsupported ページがロードされることがあります。しばらくの間、何もせずに座っていられないこともあります。これはランダムに発生するだけですが、マシンがしばらくアイドル状態になった後、またはマシンが再起動した直後に頻繁に発生します。しかし、それが確実に起こるという保証はありません。

本番環境には他の環境とは異なる多くの設定があると確信していますが、本番マシンでブラウザーを検出できず、他の場所では検出できない理由がわかりません。問題を再現しようとしていますが、まったく再現できません。

何か案は?

4

3 に答える 3

3

ユーザー エージェントは、ユーザーが変更できるため、クライアントが使用しているブラウザーを特定するための信頼できる方法ではありません。より良い方法は、ブラウザーがアプリに必要な機能をmodernizrのようなサービスでサポートしているかどうかを具体的に検出することです。

于 2012-08-02T22:51:31.000 に答える
0

IEでは、互換モードとリンクできます。つまり、競争力モードの場合、それは自己についての非常に奇妙な情報を送信します

于 2012-08-03T05:12:16.953 に答える
0

ランダムに起こるだけ

コンピュータの良いところは、ランダムに何もしないことです:)

ブラウザをどのように検出しているかについて、ほとんど情報を提供していません。どのコードを使用していますか? どのブラウザをサポートしていますか? どのユーザーエージェントが誤ってリダイレクトされていますか?

また、マシンに存在する .NET バージョンをアドバタイズするなど、多くのアプリケーションがユーザー エージェントを変更することにも注意してください。これにより、誤った一致が発生する可能性があります。

于 2012-08-02T22:50:50.720 に答える