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

时间:2017-11-12 16:50:27

标签: c# azure asp.net-core-2.0

由于我的声誉有限(因为我还是StackOverflow的新手),我无法评论其他帖子,因此我必须创建一个新问题。但是,这似乎与帖子.net-core-2.0 azure app service 502.5 error中指出的问题不同。我没有得到502.5错误,而是这条消息:

enter image description here

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

有没有人对如何解决这个问题有任何新想法?

感谢您的反馈。

更新

我收到以下错误:

  

SqlException:用户'null'登录失败。 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnect ctionPoolIdentity identity,SqlConnectionString connectionOptions,object providerInfo,bool redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,bool applyTransientFaultHandling)

1 个答案:

答案 0 :(得分:1)

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

  1. 使用'工具| Nuget包管理器'将所有组件更新到最新的2.0版本,包括ASP.Net Core和EF Core。

  2. 修复更新后显示的错误。有些很容易修复,只需按照视觉工作室的建议。有些可能很棘手,需要大量的谷歌搜索和研究。需要注意的关键位置如下所示:

  3. Program.cs中的
  4. 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();
    }
    
  5. 启动构造函数变为:

    public IConfiguration Configuration { get; }
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }
    
    在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"])
            );
    

    在Configure方法中,我为服务器端调试添加了这个:

     public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseDatabaseErrorPage();
            app.UseBrowserLink();
        }
    
  6. 在Azure门户网站上
  7. ,添加新的设置键/值对,主机:环境开发:

  8. 注意:这是出于调试目的(主要是服务器端),可以从生产版本中删除。

    1. 在发布期间,选中此框以删除目标位置的其他文件:
    2. 以下是升级到ASP.Net Core 2.0时的经验教训。如果您再次从原始项目开始,可能不会出现上面提到的一两点的SQL错误。