![](/img/trans.png)
[英]Deploy Blazor WebAssembly App ASP.NET Core hosted to Azure
[英]Can't Deploy Asp.Net Core 2.0 app to Azure app services
由于我的信誉点有限(因为我仍然是StackOverflow的新手),我无法在其他帖子上发表评论,因此我必须创建一个新问题。 但是,这似乎与发布.net-core-2.0 azure应用程序服务502.5错误中指示的问题不同。 我没有收到502.5错误,而是以下消息:
无论如何,我确实执行了另一篇文章中的步骤,但没有成功。 我仍然遇到上面显示的相同问题。 我什至完全删除了Asp.Net Core 1.1应用程序服务和相关的SQL数据库,然后重新创建了一个新主机来托管Asp.Net Core 2.0应用程序服务。 仍然没有成功。
是否有人对如何解决此问题有新的想法?
感谢您的反馈意见。
更新:
我收到以下错误:
SqlException:用户'null'登录失败。 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity身份,SqlConnectionString connectionOptions,对象providerInfo,bool redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData,bool applyTransientFaultHandling)
我刚刚将Azure Web应用程序从ASP.Net Core 1迁移到了2.0。 它还使用Azure SQL。 有趣的是,它不会像您遇到的那样引发任何与SQL相关的错误。 以下是一些希望对您有所帮助的注意事项:
使用“工具| Nuget程序包管理器”将所有组件更新为最新的2.0版本,包括ASP.Net Core和EF Core。
修复更新后显示的错误。 只需遵循Visual Studio的建议即可轻松修复某些问题。 有些可能比较棘手,需要大量的谷歌搜索和研究。 需要注意的关键地方如下所示:
在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(); }
启动构造函数变为:
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(); }
在Azure Web门户上,添加一个新的设置键/值对,Hosting:Environment Development:
注意:这是出于调试目的(主要是服务器端),可以从生产版本中删除。
这是我升级到ASP.Net Core 2.0时的经验教训。 如果您再次从原始项目开始,则遵循上面提到的一两点,可能不会出现SQL错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.