Default.aspx mit IIS 6.0 und .Net 4?

8
  1. Wir haben eine .net 4 asp.net-Site auf IIS 6.0 bereitgestellt.
  2. Default.aspx ist als eines der Standarddokumente konfiguriert.
  3. Wenn wir über die folgende URL auf die Site zugreifen

http://testsite

Wir erwarten, dass es

macht

http://testsite/Default.aspx

Aber stattdessen erhalten wir 404 Not found error . Wir hatten dieses Problem nicht, als es auf .Net 2.0 bereitgestellt wurde. Das einzige, was sich auf dem Server geändert hat, ist, dass wir .NET 4 anstelle von .NET 2.0 verwenden.

UPDATE : Ich habe den folgenden Link versucht, aber es hat nicht funktioniert.

Getting eine ASP.NET 4-Anwendung für die Arbeit mit IIS6

Die Framework-Version auf dem Server ist .NET 4 RC. Wird es helfen, wenn wir die neueste .NET 4-Version auf dem Server installieren?

Update: Das Problem ist jetzt behoben. Das Problem war ein Upload-Steuerelement von Drittanbietern, das wir verwendeten, das seinen eigenen HttpHandler in Web.Config hinzufügte. Dieser HttpHandler begann in .NET 4 zu scheitern.

    
Amitabh 12.05.2010, 18:07
quelle

4 Antworten

2

Überprüfen Sie die Serverprotokolle, sie werden Ihnen wahrscheinlich eine bessere Vorstellung davon geben, was vor sich geht.

Sie können den Pfad zur Protokolldatei finden, indem Sie mit der rechten Maustaste auf die Website in IIS klicken und zu Eigenschaften wechseln. Gehen Sie dann auf die Registerkarte Website, klicken Sie unter "Protokollierung aktivieren" auf Eigenschaften, und das Fenster mit den Protokolleigenschaften wird angezeigt, in dem der Pfad zur Protokolldatei angezeigt wird.

    
Kelly 12.05.2010, 18:09
quelle
28

Mit dem neuen .NET 4-Framework treten einige Probleme auf, wenn Sie es auf IIS 6 Windows Server ausführen. Mit IIS 6 können Sie nicht mehr als ein Framework gleichzeitig ausführen, das in der gleichen Instanz wie IIS7 ausgeführt wird. Auf diese Weise kann der Anwendungspool ein anderes Framework erstellen. Wenn IIS 6 unter ASP.NET 2.0 ausgeführt wird (3.0 und 3.5 sind Superset, keine Frameworks), werden Sie diesen Fehler treffen, wenn die Anwendung 4.0 ist Konfigurationsfehler Beschreibung: Bei der Verarbeitung einer Konfigurationsdatei ist ein Fehler aufgetreten, der für die Bearbeitung dieser Anforderung erforderlich ist. Bitte lesen Sie die spezifischen Fehlerdetails unten und ändern Sie Ihre Konfigurationsdatei entsprechend. Parser-Fehlermeldung: Unbekanntes Attribut 'targetFramework'. Beachten Sie, dass bei Attributnamen die Groß- / Kleinschreibung beachtet wird.

%Vor%

Sie haben ein paar Optionen;

  1. Reduzieren Sie die .NET-Anwendung auf 3.5, was Visual Studio 2010 wirklich einfach macht. Gehen Sie einfach auf die Website Eigenschaften - & gt; Registerkarte Anwendung und es gibt eine Dropdown-Liste mit allen Framework-Versionen, wählen Sie 3.5, Sie VS2010 wird das Projekt neu laden und ändern Sie die web.config, wenn Sie Web-Service-Referenz hinzugefügt, müssen Sie sie möglicherweise löschen und neu hinzufügen unter 3.5
  2. Konfigurieren des IIS6 und der Webkonfiguration, um das Problem zu lösen. Ich beschäftige mich mit dem zweiten Teil:

  3. In der IIS 6-Konsole müssen Sie mit der rechten Maustaste auf Ihr Projekt klicken und auf die Eigenschaft klicken und auf der Registerkarte ASP.Net prüfen, ob Framework 4 ausgewählt ist oder nicht. Wenn nicht, wählen Sie das Framework 4.

Aber immer noch könnten Sie wegen des Anwendungspools den gleichen Fehler haben; Sie haben möglicherweise denselben Anwendungspool für zwei verschiedene Framework-Webanwendungen. IIS 6 lässt nicht zu, dass mehr als ein Framework gleichzeitig in derselben Instanz ausgeführt wird (dh ein einzelner Anwendungspool kann nicht für zwei verschiedene Frameworks verwendet werden) wie IIS7, mit dem ein Application Pool für unterschiedliche Frameworks erstellt werden kann.

  1. Um dieses Problem zu lösen, müssen Sie den Anwendungspool erstellen und diesen Anwendungspool Ihrer Framework 4-Webanwendung zuweisen. Um den Anwendungspool zuzuweisen, öffnen Sie in der IIS-Konsole den Eigenschaftenbereich der Webanwendung und klicken Sie auf das Register "Ausgangsverzeichnis" und den Auswahlanwendungspool, den Sie zuvor aus der Dropdown-Liste erstellt haben.
  2. Diese beiden könnten jetzt Ihr Problem irgendwann vollständig lösen. Sie können den Fehler als erhalten "404 Seite wurde nicht gefunden". Sie könnten jetzt während der Entwicklungszeit Probleme haben.
  3. Im Grunde ist die Seite nicht gefunden, das Problem ist die Ursache eines anderen Problems, das durch IIS6 verdeckt wird. Aber Sie müssen die wahre Ursache sehen. Was Sie hier tun müssen, ist auf der IIS6-Konsole zu öffnen "Web-Service-Erweiterung Knoten", die direkt unter dem Knoten "Standard-Website" ist. Sie werden die gesamte ASP.Net-Framework-Liste dort drüben sehen, standardmäßig sind diese Frameworks möglicherweise verboten, also wählen Sie bitte ASP.Net Framework 4 und klicken Sie auf die Schaltfläche "Zulassen". Durchsuchen Sie Ihre Website jetzt, Sie erhalten einen anderen Fehler neben "404 Seite ist nicht gefunden". Sie können den Fehler wie folgt erhalten:
  4. Der Wert für das Attribut 'compilerVersion' in den Provider-Optionen muss 'v4.0' lauten. Beim Durchsuchen der Website wird ein Fehler angezeigt Der Wert für das Attribut 'compilerVersion' in den Provider-Optionen muss 'v4.0' oder höher sein, wenn Sie für Version 4.0 oder höher von .NET Framework kompilieren. Entfernen Sie das Attribut "targetFramework" aus dem Element der Datei "Web.config", um diese Webanwendung für Version 3.5 oder früher von .NET Framework zu kompilieren. Um dieses Problem zu beheben, müssen Sie Ihre Web-Konfigurationsdatei wie folgt ändern:     

Zuvor wurde der CompilerVersion-Wert auf v3.5 gesetzt, aber wir ändern unser targetFranework bereits auf 4. Entsprechend der obigen Fehlermeldung muss das Attribut 'compilerVersion' in den Provider-Optionen 'v4.0' oder höher sein, wenn Sie es sind Kompilieren für Version 4.0 oder höher von .NET Framework.

%Vor%

Ich hoffe, dass dies Ihr ASP.Net 4-Problem bei der Migration und dem Hosting von IIS6 löst.

    
bibekweb 08.07.2010 08:30
quelle
3

Hier ist ein Link zu einer vollständigeren Lösung und Erklärung dafür:

Ссылка

    
Brian Duncan 05.10.2010 18:26
quelle
0

Ich denke, in 4.0 ist die Standard-Seiteneinstellung tatsächlich in der web.config gespeichert. Mit IIS 7.0 liest IIS web.config und bestimmt, was für die Standardseite zu tun ist. Ich denke, IIS 6.0 liest die Einstellung nicht.

    
ggonsalv 12.05.2010 18:22
quelle