c# - ASP.NET Core 托管在 Windows 服务中 - 未提供静态文件(即/wwwroot 的内容)

标签 c# asp.net-core windows-services

我有一个托管在 Windows 服务中的 ASP.NET Core v3.1 应用程序。当我在本地运行该服务时,一切都按预期进行。但是,当我发布它并将其部署到服务器时,静态文件(即/wwwroot 文件夹的内容)不会被提供,例如

enter image description here

我的服务像这样存在于我的文件系统上,并且 wwwroot 包含所有必需的文件:

enter image description here

根据 Microsoft documentation ,据我了解,这是因为 Windows 服务的工作目录是 C:\Windows\system32 文件夹,该文件夹不适合放置 wwwroot 文件。如何配置 wwwroot 文件夹的位置?

最佳答案

在 Startup.cs 类的Configure()函数中,我需要添加以下内容:

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new PhysicalFileProvider(
        Path.Combine(workingDirectoryPath, "wwwroot"))
});

其中“workingDirectoryPath”是我的服务可执行文件所在目录的绝对路径,例如“C:\MyService”

关于c# - ASP.NET Core 托管在 Windows 服务中 - 未提供静态文件(即/wwwroot 的内容),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60561605/

相关文章:

Javascript 不会设置在 XHR 响应中收到的 httpcookie

c# - 在 Windows 服务中获取计算机名称?

c# - 3 维数组检索值

c# - ICommand - 我应该在 Execute 中调用 CanExecute 吗?

c# - 如何使nodejs代码在asp.net core(带有JavascriptService)应用程序中调用csharp代码?

c# - 如何使用 Core 2.2 中的身份在浏览器关闭 15 分钟后保持 session 事件?

c# - 具有多个命名空间的 DataContractSerializer

c# - 反序列化对象的好模式是什么?

c# - 64 位 Windows 服务但需要 32 位 dll

.net - Windows 服务 : error 5 :Access Denied