Веб-приложение Azure. IIS 10. Веб-конфигурация. Запуск статического файла с ASP.NET Основное приложение

#asp.net #azure #iis #web-config #azure-web-app-service

#asp.net #azure #iis #web-config #azure-web-app-service

Вопрос:

У меня есть ASP.NET Основное приложение, размещенное как веб-приложение Azure по URL:

 https://my-webapp-url.azurewebsites.net/
  

Вот моя веб-конфигурация:

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="1048576000" />
      </requestFiltering>
    </security>
    <handlers>
      <remove name="aspNetCore" />
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".My.WebApp.dll" stdoutLogEnabled="false" stdoutLogFile=".logsstdout" />
  </system.webServer>  
</configuration>
  

Любой пользователь может получить доступ:

  • https://my-webapp-url.azurewebsites.net/info страница для просмотра состояния работоспособности моего приложения
  • https://my-webapp-url.azurewebsites.net/swagger страница для просмотра документации API моего приложения

Моя проблема заключается в следующем:

  • Что нужно сделать, чтобы разрешить пользователям доступ к жестко заданному пути, подобному https://my-webapp-url.azurewebsites.net/my-extra-file.html , чтобы при запросе этого URL возвращалась HTML-страница?

В настоящее время, если у меня есть my-extra-file.html в wwwroot каталоге веб-приложения, и я пытаюсь получить доступ https://my-webapp-url.azurewebsites.net/my-extra-file.html , я получаю 404.0.

Заранее благодарим вас и приносим извинения за любые ошибки.

Комментарии:

1. Если это приложение ASP .NET Core MVC, вам необходимо добавить метод app.UseStaticFiles(); in Configure класса Startup.

2. @Llazar, возможно ли определить конфигурацию для обслуживаемого my-extra-file.html полностью в web.config

3. Самый простой способ — добавить этот метод в класс Startup, потому что веб-серверу нужен этот метод для обслуживания статических файлов, таких как html, css, javascript и image. Я не уверен, что настройка может быть выполнена из web.config.

4. @Llazar , это, кажется, самый простой вариант. Пробовал редактировать непосредственно в конфигурации — не сработало. Добавил app.UseStaticFiles() , создал wwwroot папку с необходимыми файлами внутри в проекте — все хорошо. Я опубликую ответ позже. Спасибо за помощь

Ответ №1:

Я подведу итог и опубликую его в качестве ответа.

Когда вы используете Asp.net для основного приложения mvc вам необходимо добавить app.UseStaticFiles(); в Configure метод Startup класса. Чтобы веб-сервер мог обрабатывать статический файл, подобный html, css, javascript и image.

Затем создайте HTML-файл в wwwroot папке и получите к нему доступ.