2010-12-30 10 views
2

私は、ローカルマシンのポート8003でWCFサービスを開くWindowsサービスを作成しました。または、少なくとも、それはとされていますになります。サービスは、理由の有名な例外のため、起動できません。インストール済みのサービスでHTTP名前空間に権限を与える方法

System.ServiceModel.AddressAccessDeniedException: HTTP could not register URL http://+:8003/TRConfigurationService/. Your process does not have access rights to this namespace (see http://go.microsoft.com/fwlink/?LinkId=70353 for details). 

この問題は、非常に単純な答えで、here対処される:管理者モードでコマンドプロンプトを実行し、実行します。

netsh http add urlacl url=http://+:8003/ user=DOMAIN\UserName 

非常にうまくいっていて、ローカルのマシンで手動で行うことができます。しかし、管理者モードで実行するように求められたら、「はい」をクリックする以外に何もする必要はありません(インストール後またはインストール中に一度だけ)。

答えて

0

サービスが管理者モードで実行されていることを確認するだけの答えは、問題ありません。知らない人には、プロジェクトにapp.manifestファイルを追加して設定してください。

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
+0

PaulWHによれば、WCFサービスを昇格特権で稼動させることは、どうしたらいいのかの黄金の例です(http://blogs.msdn.com/b/paulwh/archive /2007/05/04/addressaccessdeniedexception-http-could-not-register-url-http-8080.aspx)。 –

+0

私はこれがどのように使用されるのかという文脈が、これが良いか悪いかの答えになると思います。私は単体テストで使用するためにローカルのサービスホストをスピンアップしようとしています。このソリューションは、最も簡単で再利用可能なソリューションです。 – Adam

5

do it using WIXにできるはずです。

+0

Shaulの提案よりも優れており、危険性は低いです。もし私が笑うことができればあなたは+2を返すでしょう。 –