it-swarm.com.de

Migrieren Sie die ASP.Net-Website von IIS6 zu IIS7

Ich muss eine ASP.Net-Website von IIS6 auf IIS7 migrieren. Ich habe versucht, alle Dateien für eine Website von IIS6 (c:\inetpub\wwwroot\MySite) auf eine andere Box mit Windows Server 2008 R2 zu kopieren, auf der IIS7 der Standardwebserver ist.

Die einfache Kopie scheint jedoch nicht zu funktionieren. Soll ich die Website für IIS7 neu erstellen oder Änderungen an der neuen Box mit IIS7 vornehmen, z. B. web.config?

Danke für die Kommentare. Weitere Untersuchung fand ich, dass http-Hander Ausnahme verursacht zu sein scheint:

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

Nachdem ich den obigen Handler in web.config auskommentiert habe, funktioniert die Webseite einwandfrei. Dies ist nur mein erster Test. Ich bin nicht sicher, ob ich die Website aus Quellcodes neu erstellen soll oder nicht. Wenn ja, muss ich für IIS7 angeben?

6
David.Chu.ca

HTTP-Handler werden in IIS7 anders behandelt als in IIS6. Ein paar Dinge, die Sie ausprobieren könnten:

1) Ändern Sie Ihren App-Pool vom "integrierten" Modus in den "klassischen" Modus (wahrscheinlich nicht die erste Wahl, aber es wird sicherlich funktionieren).

2) Konfigurieren Sie Ihre web.config-Datei neu (dies ist wahrscheinlich die Route, die Sie gehen sollten). Im integrierten Modus müssen http-Handler in den Abschnitt verschoben werden (IIS6 hat sie im Abschnitt system.web).

Hier sind einige zusätzliche Informationen, die Sie vielleicht ansehen möchten:

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

Beachten Sie auch den Abschnitt "Verschieben einer Webanwendung in den integrierten Modus".

1
Rob

Versuchen Sie auch, beide unter <system.webServer>:

<validation validateIntegratedModeConfiguration="false"/>

andernfalls funktioniert es nicht, da der Reporting Services-Handler diesen Modus ungültig macht. dann unter <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" />

Sie müssen auch das, was Sie getan haben, auskommentieren, da dies zu erwarten ist. Alte Versionen des Reporting Services-Handlers kennen IIS7 nicht wirklich.

Grundsätzlich muss der Handler sowohl im IIS7-Teil der web.config als auch im "klassischen" Teil registriert sein.

1
Tornal