C# 使用asp.net core Kestrel为本地文件夹中的静态文件提供服务
我正在尝试创建一个Kestrel web服务器,它将从本地文件夹路径(例如:C:\Website)提供静态文件。但我的web服务器尚未启动或无法找到该文件。下面是我的代码 工作代码C# 使用asp.net core Kestrel为本地文件夹中的静态文件提供服务,c#,asp.net-mvc,web,asp.net-core,kestrel-http-server,C#,Asp.net Mvc,Web,Asp.net Core,Kestrel Http Server,我正在尝试创建一个Kestrel web服务器,它将从本地文件夹路径(例如:C:\Website)提供静态文件。但我的web服务器尚未启动或无法找到该文件。下面是我的代码 工作代码 var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(@"C:\Website") .UseStartup<Startup>()
var host = new WebHostBuilder()
.UseKestrel()
.UseContentRoot(@"C:\Website")
.UseStartup<Startup>()
.Build();
Task.Run(()=> host.RunAsync())
但是,当我试图使用url访问文件夹中的index.html文件时,它不起作用。我收到错误localhost没有发送任何数据。ERR\u EMPTY\u RESPONSE。有什么东西我遗漏了吗。在调试模式下运行应用程序时,我可以在VisualStudio输出窗口中看到下面的日志
托管环境:生产环境
内容根路径:C:\Website
现在收听:
现在收听:
应用程序已启动。按Ctrl+C关闭。
还有别的办法吗 确定您没有丢失
Run
?我在主机@patrick的正下方运行,当您实际尝试在浏览器中访问路径时,日志会显示什么?在浏览器中,我没有看到任何日志。但是如果我让fiddler保持打开状态,我会得到[fiddler]ReadResponse()失败:服务器没有返回此请求的完整响应。服务器返回了0字节。您可能应该向web主机生成器添加日志记录,以便从中获得一些反馈.ConfigureLogging(l=>l.AddConsole())
应该可以做到这一点。
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
@"C:\Website"),
RequestPath = "/StaticFiles"
});
}