【发布时间】:2014-09-18 12:42:55
【问题描述】:
自托管的 OWIN Web API 是否可以在非管理员帐户下运行?我已经尝试了几十个 url 预订,但没有任何效果。该服务无法以“访问被拒绝”启动。当帐户添加到管理员角色时它可以工作,但我不希望这样。下面的代码在 Win 7 框架 4.5.2 上运行。
//install-package microsoft.owin.hosting
//install-package Microsoft.Owin.Host.HttpListener
StartOptions options = new StartOptions();
options.Urls.Add("http://localhost:5000/");
//options.Urls.Add(string.Format("http://{0}:5000", Environment.MachineName));
//options.Urls.Add("http://+:5000/");
//options.Urls.Add("http://*:5000/");
using (WebApp.Start<WebAPISelfHostMinimal.Startup>(options))
{
while (!Terminate)
{
await Task.Delay(10); //keep cpu from getting pegged
}
LogUtil.LogInfo("Terminating owin host.");
}
EDIT - 这是在 Windows 帐户下运行的。
C:\>netsh http add urlacl http://+:5000/ user=mini2012\svcAPI
URL reservation successfully added
C:\>sc start apiservice
[SC] StartService FAILED 5:
Access is denied.
C:\>netsh http add urlacl http://*:5000/ user=mini2012\svcAPI
URL reservation successfully added
C:\>sc start apiservice
[SC] StartService FAILED 5:
Access is denied.
C:\>netsh http add urlacl http://localhost:5000/ user=mini2012\svcAPI
URL reservation successfully added
C:\>sc start apiservice
[SC] StartService FAILED 5:
Access is denied.
【问题讨论】:
-
我的服务在“本地服务”帐户下运行良好。当我切换到“网络服务”时,我开始被拒绝访问。尝试了许多带有“+”号的 netsh http add urlacl 选项 - 没有任何效果。只有当我像这样从“+”切换到“”时:netsh http add urlacl url=http://:80/tms user="NT AUTHORITY\Network Service" 才终于成功了!有人知道在这种情况下“*”和“+”之间的区别吗?
标签: c# .net asp.net-web-api owin