我在我的Windows服务中托管Web Api,我在从Windows服务启动Web Api服务时出现问题,这是我调试它时遇到的异常:
发生System.AggregateException HResult = -2146233088消息=发生了一个或多个错误。 Source = mscorlib StackTrace: .... InnerException: 的HResult = -2146233087 Message = HTTP无法注册URL http://+:1243/。您的进程没有此命名空间的访问权限(请参阅 http://go.microsoft.com/fwlink/?LinkId=70353了解详情)。 来源= System.ServiceModel.Internals ......
如果我在控制台应用程序中托管相同的Web服务,一切正常。如何设置Windows服务的权限以启动Web服务?
提前致谢...
答案 0 :(得分:1)
与IIS下的托管(为您处理此问题)不同,当自托管时,您需要为正在监听的URL创建ACL,对于您正在运行的用户。像这样的东西(来自特权命令行): -
netsh http add urlacl http://+:1234/ user=LocalService
我没有专门针对LocalService尝试过上述内容,但是在侦听localhost以外的任何内容时都需要这样做。
更多可用信息here