Umwelt.GetEnvironmentVariable nicht finden, variable, Wert
Warum nicht Environment.GetEnvironmentVariable("variableName")
bekommen den Wert einer variable, wenn der Anruf innerhalb einer webMethod auf IIS gehostet wird, und es wird funktionieren, wenn ich rufe Es aus einer console-Anwendung auf der gleichen Maschine?
Wo richte ich die Variablen, die angezeigt werden IIS-web-services? Sollte ich den zweiten parameter von Environment.GetEnvironmentVariable(name, target)
um es zu bekommen?
Es ist eigentlich ganz einfach:
[WebMethod(Description = "Gets the environment variable value.")]
public string GetEnvironmentVariable()
{
return Environment.GetEnvironmentVariable("VARIABLE_NAME_HERE");
}
Und durch die Art und Weise, VARIABLE_NAME_HERE ist auf system-und Benutzer-Ebene.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen Sie hier weitere Informationen:
Über die systemweite Umgebungsvariablen in .NET-Anwendung
Speziell:
Wenn Sie versuchen, zu berufen, eine Umgebungsvariable, die nicht auf Ihrem Computer vorhanden sind, werden Sie Probleme haben. Sie müssen versuchen, eine variable zu finden, die vorhanden ist auf Ihrem lokalen Rechner, aber nicht auf Ihre web-service-host-Rechner.
Ich Stand vor dem gleichen Problem, und Dank @sergserg ich kam mit dieser und es funktionierte:
Der wichtige Teil war mit
EnvironmentVariableTarget.User
Neustart von Visual Studio fixiert es für mich (raten IIS Express speichert auch diese Werte).
EnvironmentVariableTarget.Process
) ich war nicht in der Lage zu finden, die Umgebungsvariable, es sei denn, ich verwendetEnvironmentVariableTarget.User/Machine
. Nach dem Neustart von Visual Studio, ich war in der Lage, um den Wert mit einer der 3 Enumerationen.Brauchen, um starten Sie den IIS mit iisreset-Befehl.