Получение ошибки HTTP 500.30 - PhysicalFileProvider - PullRequest
0 голосов
/ 28 мая 2020

Я хочу использовать путь за пределами 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?}");
        });
    }

ничего особенного здесь я не думаю и работает на моей локальной машине. После загрузки этого на сервер хостинга (Хостер: умнее asp. net) я получаю ошибку HTTP 500.30 - сбой при запуске процесса ANCM. Если я закомментирую новый StaticFileOptions, он работает, конечно, папка будет недоступна.

Есть ли у меня что-нибудь еще при использовании PhysicalFileProvider?

Использование. Net Ядро 3.1

1 Ответ

1 голос
/ 29 мая 2020

Я воспроизвел вашу ошибку, и ошибка вызвана тем, что путь не может быть найден. Я исправил это, добавив папку с файлами stati c в папку publi sh.

Это мой частичный код моего 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" />

Папка publi sh содержит содержимое, необходимое для публикации, я добавьте папку с файлами в папку publi sh, и тогда все заработает.

enter image description here

enter image description here

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...