IIS-Verbindungszeichenfolge wird nicht vererbt

2

Ich habe ein Problem, bei dem ich eine Verbindungszeichenfolge auf Computerebene in IIS eingerichtet habe und diese wie erwartet vollständig vererbt wird. AUSSER für die Anwendung, in der ich die Zeichenfolge verwenden möchte. Andere Anwendungen gleichzeitig Stufe erben die Zeichenfolge.

In der Vergangenheit war für die Anwendung die Verbindungszeichenfolge mit demselben Namen definiert. Wenn Sie es auf Anwendungsebene entfernen, wird es dauerhaft entfernt. Es wird nicht vererbt. Durch Hinzufügen auf Anwendungsebene wird es lokal. Ich kann für diese Anwendung keine Möglichkeit finden, die Verbindungszeichenfolge zu erben.

Gibt es eine Möglichkeit, dieses Verhalten zurückzusetzen? Sie möchten die Anwendung nicht vollständig entfernen?

TastyPorkChop
quelle

Antworten:

1

Öffnen Sie die AppHost-Konfiguration unter C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config und suchen Sie nach dem Namen Ihrer App. Überprüfen Sie die Übereinstimmungen.

Verfügt Ihre App über ein übergeordnetes Element, das möglicherweise die fragliche Verbindungszeichenfolge entfernt?

Peter Hahndorf
quelle
Ich tat dies. In keinem der App-Übereinstimmungen wurden Verbindungszeichenfolgen erwähnt. Nachdem ich ein bisschen herumgespielt hatte, fand ich heraus, dass das Ändern des App-Pools es der Anwendung erlaubte, die Verbindungszeichenfolge zu erben. Ich bin mir nicht sicher, warum das so ist.
TastyPorkChop
Wenn der App-Pool so konfiguriert wurde, dass eine andere .NET-Version als die anderen verwendet wird, ist dies möglicherweise die Ursache. Für jede Version des Frameworks gibt es eine machine.config.
Chris McKeown
@ ChrisMcKeown Ah! Nach langer Arbeit stellte sich heraus, dass es sich um die .NET-Version der App Pool-Konfiguration handelte. Genauer gesagt: Die .NET-Version auf Computerebene im IIS-Manager war standardmäßig auf Version 2.0 eingestellt, und für die App wurde ein Pool auf Version 4.0 festgelegt. Klicken Sie mit der rechten Maustaste in die Funktionsansicht und wählen Sie ".NET Framework-Version ändern". Der Wechsel zu v4.0 und das Festlegen der Verbindungszeichenfolge dort hatten die richtigen Auswirkungen.
TastyPorkChop
3

Ich hatte gerade das gleiche Problem.

Ich hatte eine Verbindungszeichenfolge für den Serverknoten (in IIS) definiert und dann auf der Standardwebsite auf Verbindungszeichenfolgen auf einem Anwendungsknoten geklickt. Ich habe das geändert und dann entschieden, dass die Änderungen nicht benötigt werden. Löschen Sie daher die Verbindungszeichenfolge vom Anwendungsknoten.

Das ist, was passiert ist. Die Verbindungszeichenfolge wurde tatsächlich für den Server definiert und vom Anwendungsknoten geerbt. Daher habe ich sie nicht tatsächlich vom Anwendungsknoten gelöscht. Eigentlich hatte ich gesagt: "Ich möchte nicht, dass diese Anwendung diese Verbindungszeichenfolge erbt ".

Ich habe es gelöscht, daher hat die Konfiguration möglicherweise nicht genau das Richtige, aber IIS hat dies implementiert, indem in die Datei web.config für die Anwendung Folgendes hinzugefügt wurde:

<connectionstrings>
    <remove name="connstringname"... />
</connectionstrings>

Wenn Sie also die Datei web.config bearbeiten und diesen Eintrag entfernen, kann Ihre Anwendung die Verbindungszeichenfolge vom übergeordneten Knoten erben.

Beau
quelle