私が作成しているアプリケーションに問題があります。私は私のC#アプリケーションを介してWindowsサービスを開始しようとしています。スタートボタンをクリックすると、すべてが通り抜けているように見えますが、サーバーにログインしても、サービスが実行中であることは表示されません。しかし、2回目に実行すると、サービスのインスタンスがすでに実行されているという例外が表示されます。再度サーバーにログインすると、サービスが停止したように見えます。誰もこれを見たことがありますか?C#プログラムによるWindowsサービスの開始
ここに私のコードです。
try
{
while (reader.Read())
{
int timeoutMilliseconds = 1000;
string serviceName = reader["ServiceName"].ToString();
string permission = reader["Permission"].ToString();
if (permission == "E")
{
lblServStartSuccess.Visible = true;
ServiceController service = new ServiceController(serviceName);
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
else
{
lblServErrorStart.Visible = true;
}
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
編集:ここで私は、一つのサービスで受信した例外は次のとおりです。
のSystem.InvalidOperationException:サービス論理ディスクマネージャ管理サービスがコンピュータ上で見つかりませんでした「」。 ---> System.ComponentModel.Win32Exception:指定されたサービスがインストールされたサービスとして存在しません---内部例外スタックトレースの末尾---
サービスが存在することがわかります。どのサーバーを見るべきかを伝えるために、サービスの前に何かを追加する必要がありますか?
サービスは開始状態で停止していませんか?私はサービスコントロールパネルがそれを表示することについて華麗ではなかったことを覚えています(少なくともいくつかのWindowsバージョン前) – Rup
"サーバーにログインするとき"とはどういう意味ですか - 別のマシンでSCMを使用しようとしていますか? – BrokenGlass
はいリモートサーバーからWebサービスを実行しています。管理者権限を持つアカウントを使用しています。私はそれが固まっているかわからない。タイムアウトが短すぎてタイムアウトになることはありますか? – Matt