1

dll、exe、および構成ファイルを備えたウィンドウサーバーであるクライアントアプリケーションがあります。

これをプログラムファイルにコピーして構成を更新するカスタムインストーラーを作成しました。

これは私が使用しているコードです

//read config and update
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)+"\\EventLogTracer.exe"; //this is app.exe path not app.exe.config path
Configuration evetconfig =ConfigurationManager.OpenExeConfiguration(path);
evetconfig.AppSettings.Settings.Remove("baseUri");
 evetconfig.AppSettings.Settings.Add("baseUri", "https://192.168.1.79:443/rest");
evetconfig.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

app.exe.config ファイルにも log4net 構成があります。私はまったく触れていません。私のインストーラーにも同じlog4net設定があります。

ここで、MSI ファイルを作成し、それをインストールして別のマシンを実行します。

これで、ローカル マシンに完璧にインストールされ、すべての設定と log4net 設定が選択されます。すべてが完璧に機能します。

VMマシンにインストールしてみました。インストールされ、サーバーにデータが投稿されました。しかし、log4netの設定を取得せず、ログをまったく書き込みません。

ここで何が問題なのか、私は簡単ではありません。誰でも助けることができますか?

ありがとう

4

1 に答える 1

1

IISに展開されたWCFアプリケーションで同様の問題が発生しましたが、アクセス許可に関連する問題であることが判明しました。IISを使用していないことは承知していますが、問題はアクセス許可に関連しているようです。

本番環境で使用されているOSは何ですか?Server 2008?もしそうなら、彼らは以前のWindowsバージョンよりもプログラムファイルのアクセス許可を少しロックダウンしませんでしたか?ログが書き込まれるフォルダをすべてのユーザーに完全に制御して、それが機能するかどうかを確認してください。もしそうなら、それがパーミッションの問題であることがわかり、どのユーザーにどの特定のパーミッションを設定する必要があるかを理解できます(すべてのユーザーを完全に制御できるようにするのではありません)。

于 2012-06-29T15:40:52.957 に答える