0

ASP.NET (.Net 4) アプリケーションから Windows サービス (アプリケーションの一部) を再起動しようとしていますが、次のエラーで失敗します:

Cannot open <ServiceName> service on computer '.'.
Inner Exception: Access is denied
StackTrace:  at System.ServiceProcess.ServiceController.GetServiceHandle(Int32 desiredAccess)
   at System.ServiceProcess.ServiceController.Start(String[] args)
   at NetClient.AvailabilityConfiguration.StartAvailabilityService(ServiceController serviceName, TimeSpan timeout)

コードは開発マシン (Windows 7) とテスト サーバー (Windows 2008 R2) では正常に動作していますが、運用サーバーでは失敗します。唯一の (そして大きな) 違いは、開発サーバーとテスト サーバーでは UAC がオフになっているのに対し、運用環境では UAC がオンになっていることです。

app.manifest ファイルを Web アプリケーションに追加して特権を昇格しようとしましたが、うまくいかないようです。app.manifest の「requestedExecutionLevel」属性を「requireAdministrator」に設定しましたが、効果がないようです。

どんな助けでも大歓迎です。

ありがとうアジュ

4

1 に答える 1

0

Web のプールを実行するアカウントには、サービス (特に開始、停止、一時停止のコマンド) を管理する権限がないことは明らかだと思います。

プールが実行されているアカウントを確認し、サーバーのサービスを管理する権限を彼に与えます。これは、グループ ポリシーを使用するか、セキュリティ テンプレートを開くことができます。

Windows Server でサービスを管理する権限をユーザーに付与する方法の公式の詳細な手順をお読みください。

于 2012-05-21T10:55:15.970 に答える