繁体   English   中英

ASP.NET MVC:从 SQL 服务器快速移动到 Azure

[英]ASP.NET MVC: moving from SQL Server Express to Azure

我确定以前有人问过这个问题,但是我在类似的问题中没有看到任何内容。 :(

我有一个我在本地开发的 ASP.NET MVC 应用程序,它一直在使用 SQL Server Express 数据库。 在 Azure 中,我重新创建了数据库并获取了它提供的连接字符串,并更新了我的应用程序的web.config中的连接字符串以使用新数据库。

当我将应用程序发布到 Azure 时,似乎没有任何问题。 但是,当我在访问数据库的应用程序中点击一个页面时,它会抛出一个错误,抱怨它找不到 SQL Server Express 数据库。 以下是错误的主要片段:

SqlException:建立与 SQL 服务器的连接时发生与网络相关或特定于实例的错误。
服务器未找到或无法访问。 验证实例名称是否正确,并且 SQL 服务器配置为允许远程连接。 (提供者: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();
}

好的,将此标记为 asp.net/c# noob。 不过,我会提前 go 并发布(令人尴尬的)答案,以防其他人发现自己在我的 position 中。

一位同事查看了代码并在这里找到了一个很好的教程。 他能够弄清楚我做错了什么。

基本上,我从未在 Startup.ConfigureServices 中注册过数据库上下文。 我认为这就是为什么有人(后来删除了他们的问题)要求我发布我的代码的那部分。 然后,controller 文件可以读取该上下文,授予他们访问数据库所需的信息。

应用程序现在可以正常工作。

暂无
暂无

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

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