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
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.
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
Neustart von Visual Studio reparierte es für mich (das Raten IIS Express speichert auch diese Werte).
Tags und Links .net c# iis web-services environment-variables