Visual Studioを使用してC#Webサービスを作成して、SMTPSVCというWindowsサービスの簡易メール転送プロトコル(SMTP)を停止しました。C#Windowsサービスを停止しようとするとアクセスが拒否されました
次はそれを行うためのWebメソッドである:
[WebMethod]
public string StopService()
{
String status = "";
try
{
ServiceController scAlerter = new ServiceController("SMTPSVC");
Console.WriteLine(scAlerter.DisplayName);
Console.WriteLine(scAlerter.CanStop);
scAlerter.Stop();
Console.WriteLine("Service stopped");
status = "STOPPED";
}
catch (Exception e)
{
Console.WriteLine("Exception caught here" + e.ToString());
status = "Exception" + e.ToString();
}
return status;
}
私は私のIIS 5.1サーバーでは、このWebサービスを公開しました。私は次のサービスは、ユーザーアカウントIUSER_system-name
を使用していると私はシステム管理者グループにこのユーザアカウントを追加しても、中ASPNET
ユーザーアカウントを追加したデフォルトで
<?xml version="1.0" encoding="utf-8" ?>
<string xmlns="http://y-square.org/">
ExceptionSystem.InvalidOperationException: Cannot open SMTPSVC service on
computer '.'. ---> System.ComponentModel.Win32Exception: Access is denied
--- End of inner exception stack trace --- at
System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
at System.ServiceProcess.ServiceController.Stop() at Service.RestartService()
in c:\Inetpub\wwwroot\RestartService\App_Code\Service.cs:line 38
</string>
を例外「をアクセスが拒否されました」投げているサービスを起動した場合管理者グループ。
私はこのWindowsサービスをC#standaloneプログラムから正常に停止/開始することができました。
問題の原因を教えていただけますか?これを実行するには、どのアクセス許可設定またはIISユーザーアクセス権を変更する必要がありますか?
また、このC#サービスがWindowsサービスを停止するために使用するユーザーアカウントを教えてください。
お手数をおかけします。事前に
おかげで、 ヨギ
感謝を行うにはいくつかのポインタですアカウントアプリケーションですが、私は同じ例外が発生しています。 IISサーバーで行う必要があるその他の構成はありますか?仮想ディレクトリのようなプロパティなど – Yogi
@ Yogi。私は仕事で忙しく、Windowsマシンにアクセスせずに物をチェックしています。私はまだこれが重要な許可やセキュリティポリシーの設定だと考えています。診断目的のために、IUSERアカウントの代わりにスタンドアロンアプリケーションとしてコードを実行し、このコードが動作するかどうかを確認するために使用されるアカウントを一時的にIISに使用させます。また、この質問をhttp://serverfault.com QAサイトに送ることもできます.SYS管理者は、実際にはコードの問題ではなく設定上の問題であると思われるものを助けるためのより良い立場にあるためです。 – mjv
@mfv:システムの再起動のために、おそらく管理者グループにIUSRアカウントを追加した時点で作業が開始されました。 あなたの助けをたくさんありがとう 乾杯、 ヨギ – Yogi