web-dev-qa-db-ja.com

IIS6からIIS7へのASP.Net Webサイトの移行

ASP.Net WebサイトをIIS6からIIS7に移行する必要があります。 IIS6(c:\ inetpub\wwwroot\MySite)からWebサイトのすべてのファイルを、IIS7がデフォルトのWebサーバーであるWindows Server 2008 R2の別のボックスにコピーしようとしました。

ただし、単純なコピーは機能していないようです。 IIS7のWebサイトを再構築する必要がありますか、それともweb.configなどのIIS7で新しいボックスに変更を加える必要がありますか?

コメントをありがとう。さらに調査すると、httpハンドラーが例外を引き起こしているように見えました。

<!--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-->

Web.configで上記のハンドラーをコメントアウトすると、Webページは正常に機能します。これは私の最初のテストです。ソースコードからWebサイトを再構築する必要があるかどうかはわかりません。その場合、IIS7を指定する必要がありますか?

6
David.Chu.ca

HTTPハンドラーは、IIS7とIIS6では異なる方法で処理されます。あなたが試すことができるいくつかのこと:

1)アプリプールを「統合」モードから「クラシック」モードに変更します(おそらく最初の選択肢ではないでしょうが、確実に機能します)。

2)web.configファイルを再構成します(これがおそらくあなたが行くべきルートです)。統合モードでは、httpハンドラーをセクションに移動する必要があります(IIS6はsystem.webセクションにあります)。

あなたが見たいと思うかもしれないいくつかの追加情報はここにあります:

http://msdn.Microsoft.com/en-us/library/bb515251.aspx

注目すべきは、「Webアプリケーションを統合モードに移行する」セクションをご覧ください。

1
Rob

両方とも<system.webServer>の下で試してください:

<validation validateIntegratedModeConfiguration="false"/>

それ以外の場合は、Reporting Servicesハンドラーがこのモードを無効にするため機能しません。 <handlers>の下

<add name="Reserved-ReportViewerWebControl-axd" path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

バージョン8の代わりに上記を使用してください。また、そこにあると予想されるため、実行した内容のコメントを外す必要があります。 Reporting Servicesハンドラーの古いバージョンは、実際にはIIS7に対応していません。

基本的に、ハンドラはweb.configのIIS7部分と「クラシック」部分に登録する必要があります。

1
Tornal