在非管理员帐户“域\测试”下在命令行上运行以下c#代码时,出现错误“ system.net.httplistenerexception:访问被拒绝”,但在管理员提升的帐户“域\测试”(例如,在Windows命令行上以管理员身份运行):
WebApp.Start(new StartOptions(“ http:\ localhost”){端口= 5000});
我一直在尝试使用Running self-hosted OWIN Web API under non-admin account中建议的其他选项,但是没有一个选项适合我。
可以帮忙吗?
答案 0 :(得分:0)
默认情况下,非管理员帐户无法创建URL保留。要允许用户绑定到给定的URL,您需要代表非管理用户add the URL reservation。
例如,要允许DECLARE @No INT = 23
DECLARE @Multiple INT = 5
绑定到端口8080上的任何地址(但仅当其后跟CORP\NonAdmin
时),可以在提升的环境中运行以下命令:
/MyUri
如果要查看已经存在的预订,可以运行以下命令:
netsh http add urlacl url=http://+:8080/MyUri user=CORP\NonAdmin
编辑:
我看到您仍然有问题。请提供以下命令的输出:
netsh http show urlacl
输出中应包含类似于以下内容的条目:
netsh http show urlacl
编辑:
我看到您已经发布了Reserved URL : http://+:5000/
User: Domain\test
Listen: Yes
Delegate: No
SDDL: D:(A;;GX;;;S-1-5-##-##########-#########-##########-#######)
命令的输出。
第一个条目的SDDL在我看来不正确。另外,由于存在两个具有不同SDDL值的重叠URL保留,因此Windows可能会混淆这两个。
您可能要删除两个URL保留,然后将它们替换为一个条目。例如:
要删除重叠的条目,请执行以下操作:
netsh
现在添加一个条目:
netsh http delete urlacl url=http://+:5000/
netsh http delete urlacl url=http://localhost:5000/
关闭所有窗口(也许重新启动),然后尝试再次运行控制台(自托管Web)应用程序。
如果这不起作用,请告诉我,我会尽力帮助。
编辑:
目标是创建一个看起来像这样的URL预留:
netsh http add urlacl url=http://+:5000/ user=Domain\test
答案 1 :(得分:0)
这是从我的计算机输出的:
保留的URL:http://+:5000/ 用户:域\测试 听:是的 代表:否 SDDL:D:(A ;; GX ;;; WD)
保留的URL:http://localhost:5000/ 用户:域\测试 听:是的 代表:否 SDDL:D:(A ;; GX ;;; S-1-5-21-839522115-1972579041-2146381891-8170)