起動時にいくつかのプロセスをセットアップするためにバッチ ファイルを呼び出す単純な Windows サービスがあります。ほとんどのバッチ ファイルは正しく実行されますが、Windows サービスの開始に失敗すると、InstallUtil /i の実行に失敗します。(InstallUtil /u は事前に機能しますが、私は奇妙だと思います) Windows サービスとバッチ ファイルのコードを次に示します。
namespace RecipopStartupService
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
ProcessBatchFile();
}
public void ProcessBatchFile()
{
Process process = new Process();
process.StartInfo.WorkingDirectory = "C:\\Webs\\AWS\\";
process.StartInfo.FileName = "C:\\Webs\\AWS\\setup.bat";
process.StartInfo.Arguments = "";
process.StartInfo.Verb = "runas";
process.StartInfo.UseShellExecute = false;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.RedirectStandardOutput = false;
process.Start();
System.IO.StreamReader myOutput = process.StandardOutput;
process.WaitForExit(200000);
if (process.HasExited)
{
string results = myOutput.ReadToEnd();
}
}
protected override void OnStop()
{
}
}
}
バッチ ファイル:
"C:\Program Files (x86)\Subversion\bin\SVN.exe" cleanup "C:\Webs\AWS\webs"
"C:\Program Files (x86)\Subversion\bin\SVN.exe" cleanup "C:\Webs\AWS\apps"
"C:\Program Files (x86)\Subversion\bin\SVN.exe" update "C:\Webs\AWS\webs"
REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v4.0.30319
set PATH=%PATH%;%DOTNETFX2%
echo Uninstalling MyService...
echo ---------------------------------------------------
InstallUtil /u "C:\Webs\AWS\apps\MyService.exe"
echo ---------------------------------------------------
echo Done.
"C:\Program Files (x86)\Subversion\bin\SVN.exe" update "C:\Webs\AWS\apps"
REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v4.0.30319
set PATH=%PATH%;%DOTNETFX2%
echo Installing MyService...
echo ---------------------------------------------------
InstallUtil /i "C:\Webs\AWS\apps\MyService.exe"
echo ---------------------------------------------------
echo Done.
NET START MyService
サービスの開始を妨げている原因を特定するために、さまざまな部分をコメントアウトしました。前に述べたように、これは InstallUtil /i セクションです。
誰かがそれをアドバイスできれば、それは素晴らしいことです。
ありがとう、コリン