C# 获取HTTP错误500.30-PhysicalFileProvider

C# 获取HTTP错误500.30-PhysicalFileProvider,c#,asp.net,asp.net-core,asp.net-mvc-4,C#,Asp.net,Asp.net Core,Asp.net Mvc 4,我想为一些文件使用wwwroot外部的路径,这些文件只能由授权用户访问并找到PhysicalFileProvider方法 我的创业公司看起来像: public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); }

我想为一些文件使用wwwroot外部的路径,这些文件只能由授权用户访问并找到PhysicalFileProvider方法

我的创业公司看起来像:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();
        }
        app.UseHttpsRedirection();


        app.UseStaticFiles();
        app.UseStaticFiles(new StaticFileOptions
        {
            FileProvider = new PhysicalFileProvider(
                Path.Combine(Directory.GetCurrentDirectory(), "Files")),
            RequestPath = "/Files"
        });
        app.UseRouting();
        app.UseAuthentication();
        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}");
        });
    }
我想这里没有什么特别的,而且在我本地的机器上工作。 上传到托管服务器(Hoster:smarterasp.net)后,我得到HTTP错误500.30-进程启动失败中的ANCM。如果我注释掉了新的StaticFileOptions,它就可以工作了,当然文件夹是不可访问的

使用PhysicalFileProvider时,我还有什么要做的吗


使用.Net Core 3.1

我复制了您的错误,错误是由于找不到路径造成的。我通过将静态文件文件夹添加到发布文件夹中来解决此问题

这是我的startup.cs的部分代码:

app.UseStaticFiles();
            app.UseStaticFiles(new StaticFileOptions
            {
                FileProvider = new PhysicalFileProvider(
                    Path.Combine(Directory.GetCurrentDirectory(), "Files")),
                RequestPath = "/Files"
            });
这是我的部分观点:

<img src="~/Files/banner1.svg" alt="ASP.NET" class="img-responsive" />

“发布”文件夹包含发布所需的内容,我将“文件”文件夹添加到“发布”文件夹中,然后它就可以工作了


非常感谢您的回答。它可以是如此简单。我唯一拥有的就是我没有发布文件夹。我在我的根目录中添加了Files文件夹,必须添加到项目文件中。非常感谢你!“Files”文件夹仍然可以通过url/Files/{filename}.{extension}直接访问,有没有办法解决这个问题?这是添加此文件夹的唯一原因。。。