0

私のアプリケーションでは、次のコードを使用して app.config でコードからプロセスを開始します

Process proc = Process.Start(@"c:\windows\system32\notepad.exe");

実行中にapp.configファイルを2、3回変更する必要があります。app.config ファイルを停止して変更し、プロセスを再起動する必要がないので、どうすればよいのか疑問に思っています。

別の投稿で見た次のコードがあります。

// Load the app.config file
XmlDocument xml = new XmlDocument();
xml.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);

// Do whatever you need, like modifying the appSettings section

// Save the new setting
xml.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);

プロセスがまだ実行されている間に行われている新しい設定を保存する最後の行かどうか疑問に思っていますか? またはプロセスを再起動する必要がありますか? 私の目標は、プロセスを再起動し続ける必要がないところです。ありがとう

4

2 に答える 2

0

したがって、WCFでは、app.configの目的は、管理者がコードを再コンパイルせずにサービスに変更を加えることができるようにすることです(多くの場合、方法がわからない、または実行するツールがありません)。コードを作成している場合は、プログラムの作成者であるため、app.configファイルを変更する必要がある理由はありません。

別のアドレス(バインディングまたは何を持っているか)で再ホストしようとしている場合は、サービスを閉じてコードで再起動することを忘れないでください。

WCFセルフホストサービス-C#のエンドポイント

お役に立てれば

于 2013-02-05T15:14:43.327 に答える
0

子プロセスを再起動したくない場合は、プロセス間通信(IPC)技術を使用して、app.configを更新する必要があることを子プロセスに通知する必要があります。これをどのように行うかは、アプリケーションの規模と、IPCリンクから取得する使用量によって多少異なります。

C#でIPCを使用する最も簡単な方法については、このSOの投稿を参照してください。子プロセスでapp.configを更新するために呼び出す必要のあるコードに関するこの投稿

編集:

プロセス間通信の追加オプションを説明するより良い投稿を見つけました。

于 2013-02-05T15:14:50.303 に答える