繁体   English   中英

Azure 部署后 ASP.NET Core MVC webapp 错误

[英]ASP.NET Core MVC webapp error after Azure deployment

我使用 CRUD 在 ASP.NET Core MVC 中编写了一个应用程序以部署到 Azure,首先使用代码。 我跟着这个教程: https : //docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-dotnet-sqldatabase

该教程有点过时,但我相信我正确地遵循了它。 我还尝试按照示例应用程序的教程进行操作,但遇到了同样的问题。 我可以提供一张图片,但错误页面的描述性不是很强。 它说:

错误:处理您的请求时发生错误。
请求 ID:|bac57a49-4ca7848aebbdb3cb。

开发模式
切换到开发环境将显示有关发生的错误的更多详细信息。

不应为已部署的应用程序启用开发环境。 它可能导致向最终用户显示来自异常的敏感信息。 对于本地调试,通过将 ASPNETCORE_ENVIRONMENT 环境变量设置为 Development 并重新启动应用程序来启用开发环境。

坦率地说,我不知道如何进行。 我觉得连接字符串有问题,因为除非您点击访问数据库的页面,否则该站点可以正常工作。 appsettings.json文件中,唯一可用的连接字符串如下:

"ConnectionStrings": {
    "PostContext": "Server=(localdb)\\mssqllocaldb;Database=PostContext-1;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

我并不一定期望 VS2019 自己添加连接字符串,但这不是教程中的步骤,所以我没有自己接触它。

我还注意到有几个问题似乎相关,但似乎也没有明确的答案。 有一个 2018 年的解决方案, this ,它引用了一个托管模型问题,但那是 2 年前的事情了。

任何帮助或指导将不胜感激。

编辑:我在 azure 中使用了应用程序日志系统。 这是回应:

2020-09-11 22:57:18.620 +00:00 [错误]
Microsoft.EntityFrameworkCore.Database.Command:执行 DbCommand 失败(5 毫秒)
[Parameters=[], CommandType='Text', CommandTimeout='30']
SELECT [p].[Two], [p].[OneAgent], [p].[OneDate], [p].[OnePartyId], [p].[OneStage], [p].[OneTitle]FROM [ PostOnes] AS [p]

和另一个错误:

2020-09-11 22:57:18.644 +00:00 [错误] Microsoft.EntityFrameworkCore.Query:
迭代上下文类型“RyneAura.Data.PostContext”.Microsoft.Data.SqlClient.SqlException 的查询结果时发生异常
(0x80131904): 无效的对象名称“PostOnes”.at
Microsoft.Data.SqlClient.SqlCommand.<>c. [...]

我不确定他们的意思。

我认为这个问题的原因是the wrong connection string

你可以参考我在这篇文章中的回答 这是我5月份贴出来的答案,不过官方文档可能会迁移。 您可以下载您正在查看的文档中的示例代码,并根据我的建议进行尝试。 它绝对可以帮助您解决问题。

排除数据库连接错误:

  1. 如果您使用的是azure sql server,请检查门户中的防火墙设置(通常用于本地调试和特殊网段的限制)。

  2. 检查数据库名称是否一致,数据库表结构、存储过程、函数等是否与测试环境一致。

  3. azure sql server的连接字符串格式如下:

     Data Source=tcp:servername.database.windows.net,1433;Initial Catalog=db; Persist Security Info=False; User ID=user;Password=mypassword; MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False; Connection Timeout=30;
  4. 门户中的配置高于web.config的配置,详情可以查看我的回答。

该错误是由错误的连接字符串引起的。 如果你要部署到 Azure 应用服务,那么你需要有一个类似这样的连接字符串;

Server=tcp:[serverName].database.windows.net;Database=myDataBase;
User ID=[LoginForDb]@[serverName];Password=myPassword;Trusted_Connection=False;
Encrypt=True;

请遵循官方文档这将指导您完成故障排除过程

我有我的问题的解决方案。 我必须手动选中该框以在发布时触发迁移。

https://docs.microsoft.com/en-us/aspnet/core/tutorials/publish-to-azure-webapp-using-vs?view=aspnetcore-3.1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM