我有一个在 asp.net 核心中开发的应用程序,带有完整的.net 框架(.Net 4.6.1)。该应用程序是使用 Visual Studio 2017 RC 创建的。编译成功后,它已生成 TestApplication.exe。
当我转到项目根目录并执行命令 dotnet run 时,启动应用程序并开始侦听端口 5000.应用程序使用此方法运行正常。但是,当我转到projectRoot\ bin\Debug\net461\
并启动 TestApplicatin.exe 时,它也会开始侦听端口 5000 但是当我转到浏览器并输入http://localhost:5000时,我收到以下错误
localhost 页面无效
localhost 目前无法处理此请求。
HTTP 错误 500
注意 -
-
截至目前,我还没有编写任何代码。选择 asp.net 核心项目模板后,Visual Studio 将生成整个代码。
-
我不想使用 IIS
请参阅 Program.cs 文件的内容
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
1 回答
发现了问题。我在运行 exe 而没有发布它。所以 bin 目录只包含没有 wwwroot 文件夹的 exe(i.e.TestApplication.exe)。它无法找到所需的文件,因此发生致命错误。如果你想运行没有 IIS 的 asp.net 核心应用程序(i.e.使用 Kestrel 的自托管应用程序)以下是正确的步骤
dotnet 恢复
dotnet 发布
从命令提示符启动 exe 或双击它。发布后 exe 位于我的案例中的以下路径
斌调试 net461win7-x86 发布 TestApplication.exe