【发布时间】:2015-11-23 08:11:15
【问题描述】:
我在我的 Windows 服务中托管 Web Api,我在从 Windows 服务启动 Web Api 服务时遇到问题,这是我在调试时遇到的异常:
发生 System.AggregateException HResult=-2146233088 消息=发生一个或多个错误。来源=mscorlib 堆栈跟踪: ....内部异常: H结果=-2146233087 消息=HTTP 无法注册 URL http://+:1243/。您的进程没有对此命名空间的访问权限(请参阅 http://go.microsoft.com/fwlink/?LinkId=70353 了解详情)。 来源=System.ServiceModel.Internals ......
如果我在控制台应用程序中托管相同的 Web 服务,那么一切正常。如何设置 Windows 服务启动 Web 服务的权限?
提前谢谢...
【问题讨论】:
-
这可能与当前用户有关:当您运行控制台应用程序时,当前用户就是您(也许您具有“高”权限。运行服务时,用户是其他人(通常是 LocalService 或网络服务)
-
是的,我的服务作为 LocalService 帐户运行,但我不想将其帐户更改为用户 - 因为每次进程运行时用户都需要输入凭据...是否有一种为在 LocalService 帐户下运行的服务设置“高”权限的方法?
-
这不是真的:您无法在服务启动时指定用户名和密码,您必须使用例如设置它控制面板->服务->属性->连接。但无论如何我都不会使用真正的用户,它会带来更多的问题而不是好处。例如,当用户更改密码时,服务将无法启动。尝试使用不同的内置用户(也许网络服务有足够的权限来满足您的需要)
-
更改为 NetworkService 服务也没有帮助,当我启动服务时仍然出现此异常... :(
标签: c# asp.net-web-api permissions windows-services self-hosting