C# 无法将Asp.Net Core 2.0应用程序部署到Azure应用程序服务

C# 无法将Asp.Net Core 2.0应用程序部署到Azure应用程序服务,c#,azure,asp.net-core-2.0,C#,Azure,Asp.net Core 2.0,由于我对StackOverflow还不熟悉,所以我的声望有限,无法对其他帖子发表评论,所以我不得不提出一个新问题。然而,这似乎与文章中指出的问题不同。我没有收到502.5错误,而是收到以下消息: 我确实执行了另一篇文章中的步骤,但没有成功。我仍然遇到上面显示的相同问题。我甚至完全删除了我的Asp.NETCore1.1应用程序服务和相关的SQL数据库,然后重新创建了一个新的数据库来托管我的Asp.NETCore2.0应用程序服务。但仍然没有成功 有人对如何解决这个问题有什么新的想法吗 谢谢你的反馈

由于我对StackOverflow还不熟悉,所以我的声望有限,无法对其他帖子发表评论,所以我不得不提出一个新问题。然而,这似乎与文章中指出的问题不同。我没有收到502.5错误,而是收到以下消息:

我确实执行了另一篇文章中的步骤,但没有成功。我仍然遇到上面显示的相同问题。我甚至完全删除了我的Asp.NETCore1.1应用程序服务和相关的SQL数据库,然后重新创建了一个新的数据库来托管我的Asp.NETCore2.0应用程序服务。但仍然没有成功

有人对如何解决这个问题有什么新的想法吗

谢谢你的反馈

更新:

我得到了以下错误:

SqlException:用户“null”的登录失败。System.Data.SqlClient.sqlinternalconnectionds..ctorDbConne‌​ActionPoolIdentity标识、SqlConnectionString连接选项、对象提供程序信息、bool redirectedUserInstance、SqlConnectionString用户连接选项、SessionData重新连接SessionData、bool applyTransientFaultHandling


我刚刚将Azure web应用程序从ASP.Net Core 1迁移到2.0。它还使用Azure SQL。有趣的是,它并没有像您所经历的那样抛出任何与SQL相关的错误。以下是一些对您有帮助的注释:

使用“Tools | Nuget package manager”将所有组件更新至最新的2.0版本,包括ASP.Net Core和EF Core

修复更新后显示的错误。有些很容易按照VisualStudio的建议进行修复。有些可能很棘手,需要大量的谷歌搜索和研究。需要注意的关键部位如下所示:

在Program.cs中:

public static void Main(string[] args)
{
    BuildWebHost(args).Run();
}


public static IWebHost BuildWebHost(string[] args)
{
   return  WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                var env = hostingContext.HostingEnvironment;
                config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                      .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
                config.AddEnvironmentVariables();
            })
            .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                logging.AddConsole();
                logging.AddDebug();
            })
            .UseSetting("detailErrors", "true")
            .UseStartup<Startup>()
            .UseSetting("DesignTime", "true")
            .CaptureStartupErrors(true)
            .Build();
}
在ConfigureServices方法中

        // authentication cookie
    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.LoginPath = "/"; //new Microsoft.AspNetCore.Http.PathString("/");
            options.AccessDeniedPath = "/"; //new Microsoft.AspNetCore.Http.PathString("/");
        });

    // Add EntityFramework's Identity support.
    services.AddEntityFrameworkSqlServer();

    // Add ApplicationDbContext.
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])
        );
在Azure web portal上,添加新的设置密钥/值对,主机:环境开发:

注意:这主要是为了调试服务器端,可以从生产版本中删除

在发布过程中,选中此框可删除目标位置的其他文件:
以下是我在升级到ASP.NETCore2.0时学到的经验教训。如果您再次从原始项目开始,那么遵循上面提到的一两点可能就不会出现SQL错误

您是否已启用,能否显示有关错误的更多详细信息?此外,您的应用程序是否能在您的本地工作良好?感谢您的反馈。我确实在Startup.cs文件中启用了开发人员异常页面。但是,这仅在以开发模式运行时有用。该应用程序在我的桌面上的开发过程中运行良好。问题是,当我将应用程序发布到Azure应用程序服务时,当我在发布后导航到web地址时,我会在浏览器中看到上面显示的消息。无论我使用VS publish还是Team Services Build/Release,这都是一样的……我用一个简单的不支持数据库的Asp.Net Core 2.0 MVC项目做了一个实验。我使用VisualStudioPublish发布了它,效果很好。该网站没有出现任何问题。我现在的怀疑是,使用SqlServer的数据库集成可能有问题,或者可能是我添加到项目中的NuGet包有问题。我仍在尝试增量实验。您的解决方案在本地有效吗?我建议您可以启用app.usedeveloperceptionpage;在您的生产模式中快速缩小此问题。另外,你可以这样做。为什么在非开发环境中设置主机:环境开发?该应用程序在本地运行良好,但显示服务器500错误。为了查看详细的错误消息,我尝试了通过web.config进行远程调试和日志记录设置,但没有成功。这种方法可以显示服务器端错误,我觉得这非常有用。原文是这样的:也许你应该在制作网站上发布一个通知,说明你不应该这样做。
        // authentication cookie
    services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
        .AddCookie(options =>
        {
            options.LoginPath = "/"; //new Microsoft.AspNetCore.Http.PathString("/");
            options.AccessDeniedPath = "/"; //new Microsoft.AspNetCore.Http.PathString("/");
        });

    // Add EntityFramework's Identity support.
    services.AddEntityFrameworkSqlServer();

    // Add ApplicationDbContext.
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"])
        );
 public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseDatabaseErrorPage();
        app.UseBrowserLink();
    }