在没有管理员权限的情况下运行ServiceStack自托管应用程序

7
我正在尝试在控制台主机中托管我的ServiceStack服务。 我需要在没有管理员权限的情况下启动我的服务。但是当我尝试这样做时,我会收到一个异常"Access is denied. An unhandled exception of type 'System.Net.HttpListenerException' occurred in ServiceStack.dll"
  • Web API似乎有解决方案,但我没有找到适用于ServiceStack的解决方案。
  • 我尝试使用限制属性,但没有成功。
  • 我还尝试了这里的解决方案,但该命令需要用户具有管理员权限。

有没有办法在没有管理员权限的情况下启动我的ServiceStack自托管应用程序?


3
你是否尝试使用大于1024的端口号? - Scott
2
在这种情况下,如果高于1024的端口无法工作并且您无法使用netsh配置权限,则无法完成此操作。 netsh是正确的工具来配置端口访问,它需要管理员访问权限,仅需一次。此后,ServiceStack可以自由访问已配置的端口。 - Scott
1
如果您想在没有管理员权限的情况下运行,则唯一可接受的格式是 http://localhost:???,而不是使用通配符 +*,这需要管理员权限。因此,当您以 http://localhost:8080 而不是 http://+:8080http://*:8080 运行时会发生什么呢? - Scott
安德烈,我已将此作为答案添加。 - Scott
1
@Scott 非常感谢。我已经在本地主机上更改了*:????和一切都正常 - Anton Anikeev
显示剩余10条评论
1个回答

6
为了在没有管理员权限的情况下运行ServiceStack,您需要确保:
  • 主机协议为http
  • 使用的主机名只能是localhost
  • 使用高于1024的端口号
例如,以下主机可以在没有管理员权限的情况下创建:
  • http://localhost:8000
  • http://localhost:8080
  • http://localhost:1050 ... 等等。
使用通配符、除localhost外的域名、低于1024的端口或https的主机名需要管理员权限,除非在Windows上使用netsh或在mono平台上使用httpcfg授予权限。
  • http://localhost:80
  • http://+:8080
  • http://*:8080
  • http://domain.com:8080
  • http://domain.com:80
  • https://localhost:8080

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接