2011-07-07 10 views
14

私はASP.NET Webサイトを従来のasp(.NETへの変換を行っています)と混在させていますが、最近.NET 1.1から.NET 4.0にアップグレードし、統合Googlebotによって.NET System.Web.HttpExceptionが発生する

System.Web.HttpException (0x80004005) 
    at System.Web.CachedPathData.ValidatePath(String physicalPath) 
    at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context) 

しかし、私はページを自分自身を要求し、エラーなし:これらの変更ELMAHので、IIS 7.

でパイプラインがpracticalyなし詳細(とステータスコード404)で従来のASPページからのエラーを報告しています発生する。 ELMAHに表示されるこれらのすべてのエラーは、Googlebotクローラ(ユーザーエージェント文字列)によって発生します。

.NETが古典的なASPページのエラーをどのように拾いますか?これは統合されたパイプラインと関係していますか?

Googleがページをクロールするときにエラーが発生するのはなぜですか?また、基本的な障害を見つけるために詳細を取得する方法はありますか?

+2

私はASP.NET MVCページ –

答えて

0

Googleクローラがもう存在しなくなったリンクを通過するようです。 IEには、いくつかの別のドキュメントを参照するドキュメントがありますが、削除されています。

私は自分にとっては深刻ではないので、その例外を除外することを検討することもできます。

+0

でそれらを見ていますが、私はこの問題も経験しています。彼は自分自身がページを要求できると言っていたので、ページがまだ存在するように見えます。 – Ocelot20

1

従来のパイプラインから統合パイプラインに変更した場合、基本的に.NETに制御が移りました。つまり、.NETはASPパーサーを呼び出します。これにより、レスポンスの出力を変更できる.NET Managedコードでコード化されたカスタムHTTPModuleの機能が追加されます。また、elmahの場合は、ログの詳細が表示されます。

エラーが発生したときにユーザエージェントgooglebotが使用しているものを見て、ユーザエージェントで行ったのと全く同じパスが変更されたことを確認します。

Mozilla FirefoxUser Agent Switcherアドオン

14

と、このための最良のブラウザは、web.configファイルにこれを追加します

<httpRuntime relaxedUrlToFileSystemMapping="true" /> 

このdisables the default checkには、要求されたURLは、Windowsのパスの規則に準拠していることを確認します。

問題を再現するには、URLの末尾に%20(URLエスケープスペース)を追加します。 http://example.org/%20。この問題は、検索クローラーが空白とタイプされたリンクに遭遇したときなどに発生します。 <a href="http://example.org/ ">example</a>

プロパティは、後ろのスペースをトリミングしているように見えます。そのため、ELMAHなどのログツールは実際の問題を明らかにしません。あなたは角を使用している場合

0

にのみ適用されますが、

<httpRuntime relaxedUrlToFileSystemMapping="false" /> (as mentioned in the previous answers) 

場合は、これを参照してくださいよ、あなたがイメージまたはスクリプトタグにSRCの代わりに、NG-SRCを使用し、I。電子

<img src="{{SomeModelValue}}" /> 

<img ng-src="{{SomeModelValue}}" /> 

する必要がありますこれはまた、あなたがHREFの代わりに、NG-HREFを使用しているタグに影響を与える可能性があります。

関連する問題