在Azure上配置ASP.NET Core 1.0 web Kestrel应用程序

本文关键字:web Kestrel 应用程序 Core NET Azure 配置 ASP | 更新日期: 2023-09-27 17:59:39

我正试图通过git在Azure上部署aspnetcore应用程序。我直接做了所有事情,如https://docs.asp.net/en/latest/tutorials/your-first-mac-aspnet.html

稍后,我甚至遵循"将ASP.NET 5(ASP.NET Core)应用程序部署到Azure的问题"中定义的步骤,并从https://github.com/bigfont/WebNotWar在这两种情况下,我得到的都只是一条信息

您没有查看此目录或页面的权限。。

当我试图访问任何控制器时,响应是

您要查找的资源已被删除,其名称为已更改或暂时不可用。

我非常确信部署本身是好的,因为我试图破坏一个代码,它的反应是正确的。

在Azure上配置ASP.NET Core 1.0 web Kestrel应用程序

Azure应用程序服务不再支持RTM之前的ASP.NET核心

Azure应用程序服务不再支持ASP.NET 5、Core RC1或RC2唯一支持的ASP.NET核心堆栈是Azure应用程序服务上的RTM(增加强调)。

现有的RC1应用程序目前仍在运行如果我们在Azure放弃支持之前将ASP.NET Core RC1应用程序部署到Azure应用程序服务,那么该应用程序将继续工作,其连续部署也将继续工作。

ASP.NET核心IIS集成已更改

对web.config的更改

ASP.NET核心模块已替换HttpPlatformHandler。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    // Use the ASP.NET Core Module
    <handlers>
      <add name="aspNetCore" path="*" verb="*"
        modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="..'MySite.exe" arguments="" 
      stdoutLogEnabled="false" stdoutLogFile="..'logs'stdout" />
    // Remove the HTTP Platform Handler
    // <handlers>
    //   <add name="httpPlatformHandler" path="*" verb="*"
    //     modules="httpPlatformHandler" resourceType="Unspecified"/>
    // </handlers>
    // <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%"
    //   stdoutLogEnabled="false" startupTimeLimit="3600" />
  </system.webServer>
</configuration>

Startup的更改

public void Configure(IApplicationBuilder app)
{    
    // Remove call to app.UseIISPlatformHandler(); 
    // Remove call to app.UseForwardedHeaders(); 
    // Both are handled by UseIISIntegration in Main.
}
public static void Main(string[] args)
{
    var host = new WebHostBuilder()
        .UseKestrel()
        .UseIISIntegration() // Replace UseIISPlatformHandlerUrl()
        .UseStartup<Startup>()
        .Build();
    host.Run();
}