Frage

Dieses Problem hat einige von uns im Büro stapften. Wir sind alle neuen ASP.NET-Anwendungen zu einer Web-Farm bereitstellen, und ich bin frisch aus Ideen.

Wir haben eine Web-Farm, und die Anwendung wird auf alle von ihnen kopiert auf. Aber wir haben ein Problem ..

Eine Ausnahme ausgelöst wird, wenn sie versuchen, Einstellungen erhalten von appSettings. Bei der weiteren Untersuchung, den Knoten stellt sich heraus, ist eigentlich nicht die lokale Web.Config verwenden, aber es zurück zum Web.Config in dem .NET-Framework-Ordner fallen (wir haben dies bewiesen durch Tasten dort Zugabe, die auf einer Testseite erscheinen).

Ich muss etwas fehlt, weil mein Verständnis ist, dass, solange die Datei ist, IIS, dass verwenden soll! Einer der Server scheint gut zu funktionieren!

Hier ist eine Liste von dem, was wir bestätigt haben:

  • Die Konfigurationsdatei ist im App-Verzeichnis.
  • Diese Datei Inhalt korrekt ist.
  • Wenn Sie die Datei von IIS sehen> Arbeitsplatz> Eigenschaften> ASP.NET> Edit Config der richtige Inhalt angezeigt wird.

Doch während der Laufzeit die Datei, die verwendet wird, ist die global (windows\ms .net\framework\v2\config\web.config).

Wer noch keine Vorschläge, was schief gehen kann? Genießen Sie die ganze Hilfe, die ich bekommen kann!

Danke.

Rob

War es hilfreich?

Lösung 3

Zunächst einmal vielen Dank an die Jungen sehr viel, die beantwortet, ich schätze tun, um die Hilfe!

Nur ein Update zu diesem Thema. Es war eine schwierige Frage!

Es stellte sich heraus, es war nichts falsch mit dem Code oder der Konfiguration.

Es scheint, dass etwas komisch war mit der Serverfarm geht (was ich absolut keine Kontrolle über oder den Zugang zu). Der Sysadmin wieder gebaut, um die Farm, wieder eingesetzt, um die Lösung und alle funktionierten gut.

Ich denke, wir werden nie wissen, was falsch war, aber wir wissen zumindest war es nicht ein Entwicklungsproblem!

Nochmals vielen Dank, Rob

Andere Tipps

Dies ist die Hierarchie für ASP.NET-Konfiguration. Vielleicht Verständnis helfen könnte, die einander Einstellungen überschrieben.

Server

Machine.config: Die Datei Machine.config enthält das ASP.NET-Schema für alle Web-Anwendungen auf dem Server. Diese Datei befindet sich an der Spitze der Konfiguration merge Hierarchie.

Stammwebs

Web.config: Die Datei Web.config für den Server im selben Verzeichnis wie die Machine.config-Datei gespeichert ist und enthält Standardwerte für die meisten der system.web Konfigurationsabschnitte. Zur Laufzeit wird diese Datei zweite von oben in der Konfigurationshierarchie zusammengefasst.

Website

Web.config. Die Datei Web.config für eine bestimmte Website enthält Einstellungen, die auf der Website gelten und erben nach unten durch alle der ASP.NET-Anwendungen und Unterverzeichnisse der Website

ASP.NET-Anwendung Root-Verzeichnis

Web.config: Die Datei Web.config für eine bestimmte ASP.NET-Anwendung wird im Stammverzeichnis der Anwendung und enthält Einstellungen befinden, die auf der Web-Anwendung anwenden und erben nach unten durch alle Unterverzeichnisse in seiner Branche <. / p>

ASP.NET-Anwendung Unterverzeichnis

Web.config. Die Datei Web.config für eine Anwendung Unterverzeichnis enthält Einstellungen, die in dieses Verzeichnis und erben nach unten durch alle Unterverzeichnisse in seiner Branche gelten

Client Anwendungsverzeichnis

ApplicationName.config. Die ApplicationName.config Datei enthält Einstellungen für eine Windows-Client-Anwendung (nicht eine Web-Anwendung)


zu verstehen, welche ASP.NET-Dateien und Ordner über Ordner und Anwendungen geerbt werden, ist sehr wichtig für die Entwicklung und Fehlersuche.

Hier ist eine kurze Zusammenfassung:

  • web.config-Dateien erben den ganzen Weg hinunter den Baum, vorbei an allen Anwendungsgrenzen hinweg.
  • global.asax nur lebt in seiner Anwendung
  • / bin und die / app_ {} Ordner nur innerhalb ihrer Anwendung leben

Also, bedeutet dies, dass in der Datei root web.config gesetzt alles wird die gesamte Website erbt nach unten, auch wenn einige Ordner als Anwendungen gekennzeichnet sind.

Wenn diese chaotisch wird, wenn die Datei web.config Verweise auf Baugruppen hat aber Unteranwendungen nicht diese Baugruppen haben. Zum Beispiel, sagen wir mal, dass Sie eine HTTP-Module haben in der Wurzel der Site konfiguriert und von der Website web.config-Datei referenziert. Wenn Sie eine Unteranwendung namens / Unterordner haben, die als Anwendung markiert ist, dann / Unterordner wird versuchen, den HTTP-Handler aus / Unterordner / bin zu laden. Da es geworfen nicht existiert, wird ein Fehler.

Es gibt mehrere Möglichkeiten, um dieses. Wahrscheinlich das sauberste, wenn die HTTP-Handler nicht in / Unterordner erforderlich ist durch ‚Entfernen‘ die Referenz durch eine Klausel in der /subfolder/web.config-Datei hinzufügen. Sie können dies tun mit. Hier ist ein Beispiel dafür, wie ein HTTP-Modul in einem Unterordner zu entfernen:

<httpModules>
  <remove name="ErrorLog"/>
</httpModules>

Hier ist, was die Website web.config aussehen könnte:

<httpModules>
      <add name="ErrorLog"  type="GotDotNet.Elmah.ErrorLogModule, GotDotNet.Elmah, Version=1.0.5527.0, Culture=neutral, PublicKeyToken=978d5e1bd64b33e5" />
</httpModules>print("code sample");

Von dem, was Sie in den Kommentaren zu sagen, ich schlage vor mit "Try and Error".

Was passiert, wenn Sie eine fehlerhafte Eingabe durch Zweck einfügen? Ist die Anwendung fehlschlagen oder hat das nichts aus?

Versuchen Sie, den Inhalt zu kopieren und dann löschen und die Datei von Grund auf neu erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top