【问题标题】:How to grant rights to HTTP namespace on installed service?如何授予对已安装服务的 HTTP 命名空间的权限?
【发布时间】:2010-12-30 17:54:03
【问题描述】:

我编写了一个 Windows 服务,它在本地机器的 8003 端口上打开了一个 WCF 服务。或者至少,它是应该。由于著名的异常,服务无法启动:

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

一切都很好,我可以在本地开发机器上手动完成。但是,当提示以管理员模式运行时,我如何在客户端安装时执行此操作,而用户只需单击“是”(仅在安装后/安装期间一次)以外的任何操作?

【问题讨论】:

    标签: c# wcf http deployment windows-services


    【解决方案1】:

    听起来你应该可以do it using WIX

    【讨论】:

    • 远远优于 Shaul 的建议,风险也更低。如果我可以 grin,我会给你 +2
    【解决方案2】:

    看起来答案只是确保服务以管理员模式运行,那么就没有问题!不知道的可以在项目中添加一个app.manifest文件,并设置

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

    【讨论】:

    • 根据 PaulWH 的说法,在提升的权限下运行 WCF 服务是一个很好的例子,说明不要做什么 (blogs.msdn.com/b/paulwh/archive/2007/05/04/…)。
    • 我认为这将如何使用的上下文使这是一个好或坏的答案。我试图简单地启动一个本地服务主机以用于单元测试。这种解决方案是最简单、最可重复使用的。
    猜你喜欢
    • 2020-09-06
    • 2017-01-31
    • 2019-08-30
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多