gpt4 book ai didi

c# - 如何远程访问自托管的 Nancy 服务?

转载 作者:行者123 更新时间:2023-11-30 23:34:08 26 4
gpt4 key购买 nike

我正在创建一个简单的 Windows 服务,它托管一个 Nancy 实例以提供其内部数据的 View 。在本地机器上使用浏览器时一切正常;我看到它提供的观点。但是,我找不到任何无法从远程浏览器(在同一网络上)访问的原因。从远程浏览器访问只会延迟一段时间; IE最终会显示“无法显示此页面;” iPad 上的 Safari 会显示部分进度条一段时间,但什么都不做。

我正在使用所有本地 IP 进行绑定(bind),而不仅仅是本地主机。我在此链接中使用 GetUriParams() 函数来发现所有用于绑定(bind)的本地 IP 地址。 http://www.codeproject.com/Articles/694907/Embed-a-web-server-in-a-windows-service

_nancyHost = new NancyHost(GetUriParams(port));
_nancyHost.Start();

我在此页面上发现绑定(bind)到 localhost 仅适用于本地访问。 http://forums.asp.net/t/1881253.aspx?More+SelfHost+Documentation

此函数发现的 IP 用于以太网适配器、无线适配器和两个来自先前安装的 VMware 播放器的 VMware 网络适配器。我已经尝试通过机器名称和文字 IP 对以太网适配器进行远程访问。

我将条目添加到 urlacl 列表。我在很多地方使用了 netsh http add urlacl 命令,包括这个链接:Remote access to a Nancy Self Host

如果我执行 netsh http show urlacl,我会看到我正在使用的端口的条目。

我尝试了不同的 Nancy 配置如果我为 UrlReservations.CreateAutomatically 设置 Nancy 配置选项,我会得到安全提示,允许后,我会在 netsh http show urlacl 列表输出中看到所有本地 IP 的新条目,但它仍然不允许远程访问。我还尝试了 RewriteLocalHost 选项 true 和 false。

我尝试使用 http://+:3684http://*:3684 启动 Nancy(它从 Uri( )) 和 http://0.0.0.0:3684 (从 HttpListener() 中的 AddAllPrefixes() 获取异常).

我将 EXE 添加到 Windows 防火墙我已经按照此处所述创建了防火墙异常(exception):https://msdn.microsoft.com/en-us/library/ms733768.aspx

关联的规则为同时包含 TCP 和 UDP 的每一列显示 Private、Public 和“Any”。

我尝试在不同的环境中运行 Nancy。我已经在以下环境中运行代码:作为本地系统运行的 Windows 服务、Visual Studio 2013 调试器中的控制台应用程序以及以管理员身份运行的控制台应用程序.

我想这是一个简单的安全设置,但我已经用谷歌搜索并尝试了几天的各种东西。

我错过了什么?

最佳答案

这个答案提供了我需要的线索。 https://stackoverflow.com/a/21364604/1139376

This is because HttpListener is built on top of http.sys which will listen on the port you specified on behalf of your program.

不是我的 EXE 在进行实际的监听。我所需要做的就是将传入规则添加到为“系统”程序和我正在使用的特定 TCP 端口设置的 Windows 防火墙中。这允许远程访问。

关于c# - 如何远程访问自托管的 Nancy 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33559157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com