2016-10-17 5 views
1

私の元の問題は、一部のiPhoneおよびiPadデバイスでのみポストバック時にエラーが発生していました。このサイトは、他のほとんどの電話機と同様に、すべてのデスクトップコンピュータで正常に動作しました。このエラーは、ブラウザ固有のものではなく、デバイス固有のものでした。私は、.NETフレームワークは、ユーザーエージェントキーをキャッシュする」キャッシュされたユーザーエージェントをクリアする方法

IS- discussions-

.Net 4.0 website cannot identify some AppleWebKit based browsers

ASP.NET Ajax postback suddenly stops on IPhone/IPad

これらの議論の要点を以下にその答えを見つけました。ため デフォルトサイズつまり、.NETはUserAgent文字列の最初の64文字をキーとしてキャッシュするので、次にUAが同じ64文字で始まるユーザーがサイトを訪問すると、メモリ内の以前に格納されたキーにマッピングされます。ウェブサイトは今行動するこの新しいユーザーエージェントの場合と同じ方法です。

ほとんどの場合、これは問題ではありませんが、ユーザエージェントがSafariのようにポップアップすることがありますが、実際にはそうではなく、適切に解決されていない(Mozilla 0.0の機能はまったくありません)マッピングはまだキャッシュに保存されています。つまり、同じ64文字の接頭辞を持つすべてのUserAgent文字列(これはまれに多くの通常のSafariのものとまったく同じです)は、そのキャッシュエントリが期限切れになるまで間違ってマッピングされます。 "

256のユーザエージェント長でbrowserCapsを追加するいくつかのデバイスのためにその問題を解決しなく自分のiPad/iPhone上でクロムと同様にサファリを使用するもののために。

がありますこれらのキャッシュされたユーザーエージェントをクリアする方法はありますか?両方のブラウザでブラウザキャッシュをクリアしても動作しないようです。

答えて

0

は、いくつかのオンライン掘りを行った後、私はこのcache-をクリアする方法を見つけた

出典:https://msdn.microsoft.com/en-us/library/ms228122(v=vs.85).aspx

変更は、ディレクトリキャッシュを無効App_Browsersにあるファイルを.browser、そして次の要求しますアプリケーションが再コンパイルされます。しかし

、変更は %SYSTEMROOT%\ Microsoft.NET \ Frameworkの\バージョン\ CONFIG \ブラウザディレクトリ内のファイルを.browserするためになされた場合、 手動での%SystemRoot%\マイクロソフトを使用して、アプリケーションを再コンパイルする必要があります。 NET \ Framework \ version \ aspnet_regbrowsers.exeツール 、またはBrowserCapabilitiesCodeGeneratorクラスを使用してプログラムで再コンパイルする必要があります。

変更を行う必要はありませんが、外部からの変更によって強制的に再コンパイルすると仮定しています。私はまだこれをテストしています、誰かがこれを試した場合に備えて、ここに入れたいと思っています。

関連する問題