1. ホーム
  2. c#

[解決済み] Environment.GetEnvironmentVariableで変数値が見つからない

2022-02-25 23:32:18

質問

なぜ Environment.GetEnvironmentVariable("variableName") IIS 上でホストされている webMethod 内から呼び出した場合は変数の値を取得し、同じマシン上のコンソールアプリケーションから呼び出した場合は動作するのでしょうか?

IISのWebサービスから見えるようにするために、これらの変数をどこで設定すればよいのでしょうか?の第二パラメータを使用する必要がありますか? Environment.GetEnvironmentVariable(name, target) を取得することができますか?

実はとてもシンプルなんです。

[WebMethod(Description = "Gets the environment variable value.")]
public string GetEnvironmentVariable()
{
    return Environment.GetEnvironmentVariable("VARIABLE_NAME_HERE");
}

ちなみにVARIABLE_NAME_HEREはシステムレベル、ユーザーレベルで設定されていますよ。

どのように解決するのですか?

詳しくはこちらをご覧ください。

.NETアプリケーションでシステムワイド環境変数を使用する


具体的には

システム環境変数とは何ですか?

環境変数とは、以下の情報を保存する文字列です。 の環境全体に適用されます。これらの文字列の値は動的であり での動作に影響を与えることができます。環境 は、大きく2種類に分類されます。

システム変数 : システム全体に影響を与えるもので、現在の ユーザーである。これらはWindowsによって定義され、レジストリに保存されます。ユーザーは を変更するには、管理者である必要があります。また、通常 をクリックし、コンピュータを再起動する必要があります。

ユーザー変数 : 現在の環境に影響を与える。 システム・ユーザー。システム・ユーザーであれば誰でも削除、変更、追加することができます。 のユーザーです。Windowsのセットアップ、いくつかのプログラム、およびユーザーによって使用されます。 これらの変数の変更は、レジストリに保存され、有効になります。 を即座に実行します。


あなたのマシンに存在しない環境変数にアクセスしようとすると、問題が発生します。あなたのローカルマシンには存在し、ウェブサービスのホストマシンには存在しない変数を見つけようとしているのでしょう。