これで、古い会社のWebサイトで作業しています。ここでは古典的なASPを話しています。私は開発サーバーで作業していましたが、2番目はプロダクションサーバーに入りました。Webサービスのようなサーバー上の他のものが壊れ始めました。特定のファイル/フォルダのみのHTTPハンドラの登録またはプログラムによるHTTPハンドラの登録
基本的に、レポートビューアコントロールを使用するaspxページを追加しました。この問題は、Web設定ファイルにhttpハンドラを追加したときに発生します。サイトのアーキテクチャーはすべてねじれているので、ルートWeb設定ファイルを変更する必要があります。これは、サブディレクトリがルートWeb設定ファイルを継承するため、問題を引き起こしています。ここで
は私が仕事だろうと思った私が試した事がある。ここを取得していますエラーです。
まず、Web設定ファイルにlocation要素を追加してもうまくいくと思ったが、(もちろん)httpハンドラを登録していない。そしてそれは間違いを投げている。
<location path="activityreport.aspx">
<system.web>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>
</system.web>
</location>
次の1があり
<system.web>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>
</system.web>
いずれかの私は、サブディレクトリにASPXファイルを移動し、それをそこにHTTPハンドラを登録し、その者自身のWeb設定ファイルを与えるだろうと思ったが、それdidntのスティック私が試したことはうまくいきますが、すべてのサブフォルダがそのプロパティを継承しないことは確かではありません。
ロケーションパスを「。」に設定します。
<location path=".">
<system.web>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/>
</httpHandlers>
</system.web>
</location>
私の質問は...プログラムでこのHTTPハンドラを登録する方法はありますか?または、あなたは私のWeb設定の設定に何か間違った点があるかもしれません。
私は努力のためにあなたをアップアップしますが、悲しいことに、これはうまくいきませんでした。 – Odnxe
@Odnxe何がうまくいかなかったかについてさらに詳しく調べることができますか?どの方法を試しましたか?また、どのバージョンのIISを使用していますか?私はIIS 7.5/ASP.NET 4.0/Classicで管理されたパイプラインを使ってテストしましたが、答えに記述した方法で動作しているようです。 – rsbarro
IIS v6とasp.net 2.0です。私は両方の方法を試してみました(私は、プロダクション上のaspxページとテスト用のサブディレクトリにaspxページを持っています) – Odnxe