Azure не видит Index.cshtml - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь опубликовать свое приложение ASP.NET Core в службе Azure.Это работает, но когда я пытаюсь использовать функциональность приложения, я получаю сообщение

Ваше приложение службы приложений запущено и работает.

Более того, в моем wwwroot папка У меня нет .html файлов.У меня есть только файл Index.cshtml, который находится в папке Views/Home в моем приложении, все остальные файлы .css, .js и т. Д.

Когда я запускаю приложение в VisualStudio в режиме отладки, немедленно открывает страницу в браузере, созданную из Index.cshtml.Но после публикации приложения в Azure этого не происходит.

Что я могу сделать, чтобы Azure увидел Index.cshtml?

Ответы [ 4 ]

0 голосов
/ 06 января 2019

2 цента с моей стороны, пока я просто застрял на этом некоторое время.

Проблема заключалась в том, что вчера я играл с Ubunut / Ngnix, а сегодня решил попробовать Azure.

НО я забыл прокомментировать (отключить) следующие строки в моем автозагрузке:

//for nginx server
app.UseForwardedHeaders(new ForwardedHeadersOptions
         {
           ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
          });

, и это стоило мне почти половину дня, чтобы найти проблему.

Iтакже поставьте маршрутизацию следующим образом

    app.UseStatusCodePages();

    app.UseAuthentication();

    app.UseMvc(routes => {
        routes.MapRoute(
        name: "default",
        template: "{controller=Pages}/{action=Index}");
    });

Теперь похоже, что это работает в Azure:)

0 голосов
/ 28 мая 2018

Вы находите index.cshtml в своем веб-пакете?В случае, если вы получили index.cshtml в вашем окончательном веб-пакете, вам может понадобиться добавить тип файла index.cshtml к следующему в ..

.. YourAzureWebApp -> Настройки приложения -> Документы по умолчанию

enter image description here

0 голосов
/ 28 мая 2018

AFAIK, маршрут по умолчанию будет добавлен к Configure методу вашего Startup.cs файла следующим образом:

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});

Я также создал мое приложение .Net Core 2.0 MVC, чтобы проверить эту проблему.может работать должным образом на локальной стороне и в моем лазурном веб-приложении.

Более того, в моей папке wwwroot у меня нет файлов .html.

Представления в ИнтернетеПриложение и веб-приложение MVC будут скомпилированы в {your-webapplication-assemblyname}.PrecompiledViews.dll, вы можете использовать ILSpy для проверки своих DLL.

Для вашей проблемы, я бы порекомендовал вам очистить веб-контент в вашем веб-приложении.через KUDU или измените параметры публикации и выберите Удалите дополнительные файлы в месте назначения в разделе Параметры публикации файлов, а затем повторно разверните приложение в Azure Web App, чтобы сузить эту проблему.

0 голосов
/ 27 мая 2018

Я выяснил, в чем проблема.Существует два типа приложений, представленных на рисунке ниже: веб-приложение и веб-приложение MVC.Я работал со вторым типом приложения.Когда я выбрал первый тип и опубликовал приложение, Azure немедленно обнаружил нужный файл index.html.Мне просто нужно было выбрать веб-приложение.

Но почему оно не работает со вторым типом приложения (Web Apllication MVC)?Я до сих пор не знаю ответа на этот вопрос. enter image description here

...