【发布时间】:2017-01-07 00:33:24
【问题描述】:
我是一名新的 Web 开发人员,正在尝试使用 Azure 测试服务托管一个测试站点。
我可以在http://kencast20160830102548.azurewebsites.net/看到测试站点(您可以访问此站点进行测试)
但是,如果您转到服务 -> Fazzt --> 设备和应用程序页面,我会收到此错误:
错误。 处理您的请求时发生错误。 发展模式 切换到开发环境将显示有关所发生错误的更详细信息。
不应在已部署的应用程序中启用开发环境,因为它可能导致向最终用户显示异常的敏感信息。对于本地调试,可以通过将 ASPNETCORE_ENVIRONMENT 环境变量设置为Development,然后重新启动应用程序来启用开发环境。"
这些页面依赖于 SQL 数据库,所以我认为这就是问题所在。
我一直在尝试遵循此处发布的说明:https://docs.asp.net/en/latest/tutorials/publish-to-azure-webapp-using-vs.html
但是登录到我的 Microsoft Azure 帐户时,我找不到“配置 SQL 数据库”弹出框。
这些指示似乎与 Azure 中存在的内容不一致。
更新 - 2016 年 8 月 31 日
我研究并学到了更多: 我有一个带有两个 DBContext 的项目。
当我发布到 Azure 时,它会发布来自 ApplicationDBContext 的表,而不是来自 MyCompanyContext 的表。我可以使用 SQL Server 对象资源管理器进行验证。 我可以在 ApplicationDB 和 MyCompanyDB 的 appsettings.json 文件中看到我的本地连接字符串。以下是 appsettings.json 中的代码:
{
"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MyCompany-3097a012-5e00-4c25-ad83-2730b4d73b4b;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"Data": {
"MyCompanyContext": {
"ConnectionString": "Server=(localdb)\\mssqllocaldb;Database=MyCompanyContext-f9de2588-77e8-41dd-abb3-84341610b31a;Trusted_Connection=True;MultipleActiveResultSets=true"
}
}
}
但是,当我查看“SQL Server 对象资源管理器”窗口时,我看到托管在 Azure 上的数据库 mycompanydb.database.windows.net(SQL Server 11.0.9231 -mycompanydb, MyCompany_db) 只有来自“DefaultConnection”数据库,而“MyCompanyContext”中没有任何内容。
如何将表从第二个数据库 (MYCompanyContext) 获取到 Azure?
我一直在研究这个Stack Overflow 响应,但它在 PMC 中使用了 Enable-Migration。当我这样做时,我得到一个错误,即 enable-migrations 已过时。
在本地,我总是使用以下方法进行迁移: add-migrations -c MyCompanyContext
您能给我的任何帮助将不胜感激。
谢谢!
【问题讨论】:
-
如果您使用 EF 连接到 SQL,并且向导识别 DBContext 类的存在(至少我的 VS 2015 会发生这种情况),则会显示配置 sql。因此,为了让您的应用程序连接到 SQL Db,如果您将连接字符串存储在 appsettings.json 文件中,您可能正在读取我称之为
Startup.cs的连接字符串。 docs.asp.net/en/latest/tutorials/first-mvc-app/…。然后将 Web 应用程序发布到 azure,如您发布的链接中所示 -
@JS_GodBlessAll 感谢您的回复,但我不明白。什么是EF?您的评论中包含的链接中提到了这一点。我也不明白我应该从这条评论中做什么:“所以为了让你的应用程序连接到 SQL Db,如果你将它存储在 appsettings 中,你可能正在读取我称之为 Startup.cs 的连接字符串。 json 文件。docs.asp.net/en/latest/tutorials/first-mvc-app/…” 这个链接似乎是关于在本地数据库上运行 SQL 数据库。我想在 Azure 上运行它。谢谢!
-
np, EF = 实体框架;要连接到 SQL Db,无论是在天蓝色还是本地 - 您必须适当地配置连接字符串。无论它在哪里显示本地,将其指向云上的 SQL 服务器。 Startup.cs 是您的 .net 核心应用程序的入口点。以下是一些有用的链接,可帮助您入门docs.asp.net/en/latest/data/index.html; stackoverflow.com/questions/31097933/…
-
您在什么时候偏离了教程? (另外:我不太确定这是否与 SQL Server 相关;这样的开发环境警告更适合 Web 应用程序框架,而不是 SQL Server。)
-
@drediske 我已经重复了两次教程,因为我正在处理现有项目,所以我跳过了有关创建 Web 应用程序的部分。在注册项目后,我也没有看到有关应用迁移的屏幕。我使用个人用户帐户登录。
标签: c# sql-server azure asp.net-core azure-sql-database