【发布时间】:2022-01-26 00:05:36
【问题描述】:
我正在尝试使用以下代码启动一个简单的 Nancy Web 服务器(在 WPF 项目中,因为我还需要一些窗口...):
public class ProfilePage : NancyModule
{
public ProfilePage()
{
var host = new NancyHost(new Uri("http://localhost:8080"), new Bootstrapper());
host.Start();
Get("/", _ => { return $"Hello world"; });
}
public class SelfHostRootPathProvider : IRootPathProvider
{
public string GetRootPath()
{
return Environment.CurrentDirectory;
}
}
}
public class Bootstrapper : DefaultNancyBootstrapper
{
protected override IRootPathProvider RootPathProvider
{
get { return new SelfHostRootPathProvider(); }
}
}
当我运行它时,它只会永远加载并最终崩溃并出现以下异常:System.StackOverflowException: 'Exception of type 'System.StackOverflowException' was throwed.'
有人知道我做错了什么吗?
【问题讨论】:
-
你是从 VS 运行的吗? VS 不会自动以 ADMIN 权限运行。通过右键单击快捷方式启动 VS 并选择 RunAsAdmin。
-
我以管理员身份启动了 Visual Studio。但是还是不行
-
有人知道它为什么不起作用吗?
-
如果你在 VS 中调试它,调用堆栈应该会告诉你出了什么问题。顺便说一句,南希不再维护,所以你应该尽量避免它。迁移到 .NET Core 以便您可以一起使用 ASP.NET Core + WPF。
-
Web 服务器不应该访问本地机器上的资源。来自客户端的连接默认为 GUEST 权限。也不建议以管理员身份运行服务,因为您可以打开后门以允许黑客访问计算机。您应该限制使用 Admin 运行的代码量。如果您需要访问文件,请将它们放在允许访客访问数据的网络驱动器上。我会检查 Windows 上的事件查看器,看看是否有任何与您的应用程序相关的错误。