サード パーティのレポート コンポーネントを使用する ASP.NET サイトがあります。NullReferenceException
このコンポーネントは、クライアント ブラウザがUser-Agent
リクエスト ヘッダーで a を指定していない場合は常にa をスローするため、動作が正しくありません。
基本的に、私が回避策を考え出そうとしているのは奇妙なシナリオです。誰/どのクライアントが User-Agent を指定していないかはわかりませんが、これは IMO の形式が悪いように見えますが、それが生成している例外に対処する必要があります。レポート コンポーネントのバグに関してサードパーティにサポート チケットを記録しましたが、そのルートがどれほど実りあるものになるかについては疑問があります。したがって、私の考えは、User-Agent
が空白であることを検出し、レポート コンポーネントをなだめるためだけにデフォルトに設定することでした。ただし、Request.Headers コレクションでは何も変更できないようです。次の例外が発生します。
Operation is not supported on this platform.
私はこれを行うことができないだろうと信じ始めています。ASP.NET がこれを許可しない理由は理解していますが、他の回避策は思いつきませんでした。
更新: penfold の提案で、 を使用しUser-Agent
て をRequest.Headers
コレクションに追加しようとしました。これにより、コレクションに追加されましたが、プロパティは更新されませんでした。これが、レポート コンポーネントが失敗する原因となっています。私は .NET Reflector を調べて、そのプロパティがどのように設定されているかを判断して更新できるようにしましたが、まだ何も思いつきませんでした (プロパティを駆動するプライベート フィールドだけを見つけられるわけではありません)。 )。HttpModule
Headers
Request.UserAgent