kay*_*one 23 acl self-hosting nancy signalr owin
我已经创建了一个自托管的Nancy/SignalR应用程序,它使用Microsoft.Owin.Host.HttpListener和在OWIN中自托管Microsoft.Owin.Hosting
事情在本地工作得很好但是一旦我尝试使用除localhost之外的任何东西来访问应用程序我就会收到HTTP Error 503. The service is unavailable错误.我甚至无法使用127.0.0.1或使用机器名称访问应用程序.
我已经尝试将端口添加到urlacl使用
http add urlacl http://*:8989/ user=EVERYONE 但似乎没有做任何事情.
这是我试过的OWIN启动选项,
var options = new StartOptions
{
Url = "127.0.0.1",
App = GetType().AssemblyQualifiedName,
Port = _configFileProvider.Port
};
var options = new StartOptions
{
App = GetType().AssemblyQualifiedName,
Port = _configFileProvider.Port
};
Run Code Online (Sandbox Code Playgroud)
这是启动和停止服务器的文件的源代码 https://github.com/NzbDrone/NzbDrone/blob/vnext/NzbDrone/Owin/OwinHostController.cs
kay*_*one 26
所以事实证明你需要以StartOptions与urlacl相同的格式传入一个url .
将启动选项更改为以下代码可解决问题.现在,该应用程序可通过网络访问.
var options = new StartOptions("http://*:8989")
{
ServerFactory = "Microsoft.Owin.Host.HttpListener"
};
Run Code Online (Sandbox Code Playgroud)
Mil*_*vec 11
我花了很多时间在Windows 8.1上解决类似的问题.
StartOptions options = new StartOptions();
options.Urls.Add("http://localhost:9000");
options.Urls.Add("http://127.0.0.1:9000");
options.Urls.Add("http://192.168.0.102:9000");
options.Urls.Add(string.Format("http://{0}:9000", Environment.MachineName));
WebApp.Start<Startup>(options);
Run Code Online (Sandbox Code Playgroud)
我听不懂或得到503错误......
如果要监听多个IP地址,每个地址都需要自己的urlacl记录:
不起作用:
netsh http>add urlacl http://+:9000/ user=EveryOne
Run Code Online (Sandbox Code Playgroud)
好:
netsh http>add urlacl http://localhost:9000/ user=EveryOne
netsh http>add urlacl http://127.0.0.1:9000/ user=EveryOne
etc.
Run Code Online (Sandbox Code Playgroud)
单独为每个地址添加预订后,一切正常.
感谢@ kay.one提供的信息,我可以通过IP地址从同一台机器访问我自己托管的Web API 2.2(OWIN/Katana,控制台应用程序).然而,只需将其简化为一个简单的步骤:
MainProgram.cs中(对于控制台应用程序):WebApp.Start<Startup>("http://*:8080");netsh http add urlacl http://*:8080/ user=EVERYONE然后,您应该能够使用IP地址或计算机名从另一台计算机访问.
免责声明:我不是安全专家,因此我不知道这样做的安全隐患.
| 归档时间: |
|
| 查看次数: |
20722 次 |
| 最近记录: |