ASP.NET MVC:从 SQL Server Express 迁移到 Azure
Posted
技术标签:
【中文标题】ASP.NET MVC:从 SQL Server Express 迁移到 Azure【英文标题】:ASP.NET MVC: moving from SQL Server Express to Azure 【发布时间】:2021-07-02 11:52:39 【问题描述】:我确定以前有人问过这个问题,但我没有在类似的问题中看到任何内容。 :(
我有一个我在本地开发的 ASP.NET MVC 应用程序,它一直在使用 SQL Server Express 数据库。在 Azure 中,我重新创建了数据库并获取了它提供的连接字符串,并更新了我的应用程序的 web.config
中的连接字符串以使用新数据库。
当我将应用程序发布到 Azure 时,似乎没有任何问题。但是,当我在访问数据库的应用程序中点击一个页面时,它会抛出一个错误,抱怨它找不到 SQL Server Express 数据库。以下是错误的主要sn-p:
SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。 服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供程序:SQL 网络接口,错误:52 - 无法找到本地数据库运行时安装。验证 SQL Server Express 已正确安装并且本地数据库运行时功能已启用。)
所以它似乎忽略了我的连接字符串并仍在寻找本地存储的 SQL Server Express 数据库,而不是使用我在连接字符串中指定的 Azure 数据库。任何想法为什么会这样?我的猜测是我错过了一些非常基本的东西(我通常的猜测是当看起来应该很简单的东西不起作用时。:))
以下请求的连接字符串:
本地:
<add name="FCDbContext" connectionString="data source=(localdb)\MSSQLLocalDB;initial catalog=FormCenterResponder;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
Azure 连接字符串:
<add name="FCDbContext" connectionString="Server=tcp:***azuredbserver here***,1433;Initial Catalog=***azuredb here***;Persist Security Info=False;User ID=***username here***;Password=***password here***;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;" providerName="System.Data.SqlClient" />
并根据另一个请求配置服务(几乎是默认值):
public void ConfigureServices(IServiceCollection service)
services.AddControllersWithViews();
【问题讨论】:
向我们展示您的连接字符串 - 用于本地 SQL Server Express 以及 Azure 中的数据库 【参考方案1】:好的,将此标记为 asp.net/c# noob。不过,我会继续发布(令人尴尬的)答案,以防其他人发现自己处于我的位置。
一位同事查看了代码,发现了一个很好的教程here。他能够弄清楚我做错了什么。
基本上,我从未在 Startup.ConfigureServices 中注册过数据库上下文。我认为这就是为什么有人(后来删除了他们的问题)要求我发布我的代码的那部分。然后控制器文件可以读取该上下文,授予他们访问数据库所需的信息。
应用程序现在可以正常工作了。
【讨论】:
以上是关于ASP.NET MVC:从 SQL Server Express 迁移到 Azure的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET MVC Identity 使用自己的SQL Server数据库
在 ASP.NET MVC 中执行 SQL Server 存储过程时如何防止超时错误?
ASP.NET Core MVC:使用 SQL Server 身份验证连接到现有数据库
使用带有实体框架代码优先和 ASP.NET MVC 3 和 mvc miniprofiler 的 SQL Server CE 时出现问题