システムwiki

なぜ時々Windowsサービスアプリは動的アセンブリを構築できませんか?

ŁukaszG 受付中 最終更新日:2021-06-06 09:22

サーバーアプリがいくつかあります.このアプリは、いくつかのファイルを読み、C#クラスを作成し、このアセンブリとロードアセンブリを作成します.このアプリは2つのモードで機能することができます-1つのモードはwindows デスクトップApplication、およびモード-Windowsサービスとしてのモードですが、コア
DLLは一般的です.

このアプリがサービスとして長時間働き、マシンサーバーに長いタイムアップが長い場合、それらは何も構築できません.デバッガ、およびデバッグサービスを添付しています.私は.NETソース(CompileAsSemblyFromSource)をデバッグして、その.NETクラスを表示します.
PARAMS(CSHARPCODEPROVIDERクラス)を使用してCSC.EXEプロセスを実行するだけでなく、csc.exe実行、エラーまたは例外を返し、出力は空白であり、何も起こりません.組み立ては構築されていません.

コードをコンパイルするためのダンプテストサービスをいくつか書きました.

名前空間CompilerService.
{
パブリッククラスコンパイラ
{
プライベートタスク_compilerTask;
パブリックコンパイラ()
{
_compilertask= task.run(()=>compileHalloworld());
}
プライベートコンストラクション文字列_workingdir= @ "c:\tmp";
プライベートボイドCompileHallowLd()
{
System.Threading.thread.SLEEP((30000));
if(!ディレクトリ.exists(_workingdir))
{
Directory.CreatedIrectory(_workingDir);
}
Directory.SetCurrentDirectory(_workingDir);
VAR CSC=新しいCSHARPCodeProvider(新しい辞書<文字列、String>(){{"compifersiffersion"、 "v4.0"} } );
VARパラメータ= New CompilerParameters(new [] "{" mscorlib.dll "、" system.core.dll "} 、 "foo.exe"、true).
Parameters.GenerateExecutable= true;
compilerResults results= null;
お試しください
{
結果= CSC.compileAssemblyFromSource(パラメータ、
システムを使ってシステムを使う.
クラスプログラム{
パブリック静的ボイドメイン(String [] args){
Console.WriteLine( "Hallo World!" ");
}
} ");
}
キャッチ(例外e)
{
int a= 2;
}
results.errors.ctrorError>().tolist().foreach(error=>console.writeLine(error.errortext));
}
}
}

このダンプサービスは、この機械のこの状態でハローの世界を構築することで失敗します.

マシンを再起動した後、すべての作業はすべて、アセンブリを常にコンパイルしてロードします.数週間後、問題が戻ってきて、サーバーをリセットする必要があります.この問題は1台のマシンにしかありません.Otger Machines This.
サービスとcsc.exeは年から完璧です.

マシンがこのWIRDSの状態にある場合、csc.exeはWindowsサービスアプリを構築しませんが、Windowsデスクトップアプリとしてこのアプリを実行すると、すべてがうまく機能し、csc.exeは通常...

あなたは私に言うことができます、これはいくつかの既知の問題です、Orazはマシンの再起動なしでCSC.exeをコンパイルしないのいくつかの解決策ですか?

返信リスト(回答:3)

1 #
DaveM12

こんにちはŠukasz、私はあなたがそのフォーラムで開発者のうちの1人からすばやく返事を受けることを願っています!

3 #
DaveM12

こんにちはŠukasz
私はあなたの質問の範囲のために、コミュニティは単なる消費者フォーラムです(C#アプリ開発)C#セクションのMSDN(開発者ネットワーク)の姉妹フォーラムにこの質問を投稿してください(下記)
あそこに、C#開発者のホストにアクセスできるようになり、この質問に対する知識のある素早い答えが得られます...
https://social.msdn.microsoft.com/forums/ja-JP/...
また、そのフォーラムはこのリンクのMicrosoft Q&Aに移動する過程にあります.
https://docs.microsoft.com/ja-jp/answers/produc...

応答3# ->にスキップ
2 #
ŁukaszG

ありがとう、私は新しい質問をします- リンク:Windows Service App Can39t Dynを構築するのはなぜ