Environment.GetEnvironmentVariable findet keinen Variablenwert

8

Warum Environment.GetEnvironmentVariable ("Variablenname") wird den Wert der Variablen nicht erhalten, wenn der Aufruf von innerhalb einer webMethod erfolgt, das auf iis gehostet wird. Und es funktioniert, wenn ich es von einer Konsolenanwendung auf demselben Rechner aus rufe?

Wo richte ich diese Variablen so ein, dass sie für IIS-Webdienste sichtbar sind? Sollte ich den zweiten Parameter von Environment.GetEnvironmentVariable (Name, Ziel) verwenden, um es zu bekommen?

Es ist eigentlich wirklich einfach:

%Vor%

Und VARIABLE_NAME_HERE wird übrigens auf System- und Benutzerebene festgelegt.

Vielen Dank im Voraus

    
Lemmerich 05.10.2012, 22:33
quelle

4 Antworten

6

Lesen Sie hier für weitere Informationen:

Verwenden von systemweiten Umgebungsvariablen in der .NET-Anwendung

Speziell:

  

Was sind Systemumgebungsvariablen?

     

Umgebungsvariablen sind Zeichenketten, die Informationen über die   gesamte Umgebung in Ihrem System. Diese String-Werte sind dynamisch und   Sie können beeinflussen, wie sich Ihr System verhalten wird. Umgebung   Variablen können in zwei Haupttypen eingeteilt werden:

     

Systemvariablen : Sie beeinflussen das gesamte System unabhängig vom aktuellen Zustand   Benutzer ist. Sie werden von Windows definiert und in der Registrierung gespeichert. Sie   Sie müssen Administrator sein, um sie ändern zu können. Du normalerweise   Sie müssen Ihren Computer neu starten, damit diese Änderungen wirksam werden.

     

Benutzervariablen : Sie wirken sich auf die aktuelle Umgebung des aktuellen aus   Systembenutzer. Sie können von jedem System gelöscht, geändert und hinzugefügt werden   Benutzer. Sie werden von Windows-Setup, von einigen Programmen und von Benutzern verwendet.   Änderungen an diesen Variablen werden in der Registrierung gespeichert und sind wirksam   sofort.

Wenn Sie versuchen, eine Umgebungsvariable aufzurufen, die auf Ihrem Computer nicht vorhanden ist, treten Probleme auf. Sie müssen versuchen, eine Variable zu finden, die auf Ihrem lokalen Computer, aber nicht auf dem Host-Computer Ihres Web-Service existiert.

    
sergserg 05.10.2012, 22:38
quelle
9

Ich hatte das gleiche Problem, und dank @sergserg bin ich auf dieses Problem gekommen und es hat funktioniert:

%Vor%

Das wichtige Bit verwendete EnvironmentVariableTarget.User

    
Patrick Michalina 31.12.2016 17:56
quelle
5

Sie müssen den IIS mithilfe des Befehls iisreset neu starten.

    
haishan 24.01.2014 08:55
quelle
2

Neustart von Visual Studio reparierte es für mich (das Raten IIS Express speichert auch diese Werte).

    
Branden Barber 09.11.2017 21:49
quelle