Azure没有看到Index.cshtml

时间:2018-05-27 15:03:16

标签: azure web asp.net-core azure-web-sites deploying

我正在尝试在Azure服务上发布我的ASP.NET核心应用程序。这有效,但当我尝试使用应用程序功能时,我收到消息

  

您的App Service应用已启动并正在运行。

此外,在我的wwwroot文件夹中,我没有任何.html个文件。我只有一个Index.cshtml文件,该文件位于我的应用程序的Views/Home - 文件夹中,所有其他文件都是.css.js等。

当我在Visual Studio中以调试模式运行应用程序时,立即打开从Index.cshtml生成的浏览器中的页面。但是,在Azure中发布应用程序后,这种情况不会发生。

如何让Azure看到Index.cshtml

4 个答案:

答案 0 :(得分:1)

您是否在网络包中找到了index.cshtml?如果您在最终的Web包中获得index.cshtml,则可能需要将index.cshtml文件类型添加到以下内容中。

.. YourAzureWebApp - >应用程序设置 - >默认文件

enter image description here

答案 1 :(得分:1)

AFAIK,默认路由将添加到classpath文件的Configure方法中,如下所示:

Startup.cs

我还创建了我的.Net Core 2.0 MVC应用程序来检查这个问题,它可以在本地和我的Azure应用程序中按预期工作。

  

此外,在我的wwwroot文件夹中,我没有任何.html文件。

Web应用程序和Web应用程序下的视图MVC将被编译为app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); ,您可以利用ILSpy来检查您的DLL。

对于您的问题,我建议您通过KUDU清除网络应用中的网络内容,或修改发布设置,然后选择文件发布选项下的删除目的地的其他文件,然后将您的应用程序重新部署到Azure Web App以缩小此问题。

答案 2 :(得分:0)

我发现了问题所在。有两种类型的应用程序,如下图所示:Web应用程序和Web应用程序MVC。我使用第二种类型的应用程序。当我选择第一个类型并发布应用程序时,Azure立即找到了所需的index.html。我只需选择Web应用程序。

但为什么它不适用于第二种类型的应用程序(Web Apllication MVC)?我仍然不知道这个问题的答案。enter image description here

答案 3 :(得分:0)

从我这边走了2美分,因为我刚坚持了一段时间。

问题是昨天我一直在部署到Ubunut / Ngnix,今天我决定尝试使用Azure。

但是我忘记在启动中注释(禁用)以下几行:

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

那花了我近半天的时间才能找到问题。

我还按照以下方式放置路由

    app.UseStatusCodePages();

    app.UseAuthentication();

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

现在看起来它可以在Azure上运行了:)