Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 连接字符串问题_Asp.net Mvc 4_Azure Storage_Entity Framework 4.3 - Fatal编程技术网

Asp.net mvc 4 连接字符串问题

Asp.net mvc 4 连接字符串问题,asp.net-mvc-4,azure-storage,entity-framework-4.3,Asp.net Mvc 4,Azure Storage,Entity Framework 4.3,我在MVC4项目中的连接字符串有问题 该项目的结构如下: Solution -MVC4-web app project -Custom DBContext project -Portable Area project (MvcContrib) 我使用在线Azure数据库进行存储,我的所有模型都在自定义db上下文中。该项目编译了find,我甚至让MvcContrib与MVC4和Razor视图引擎一起工作 在Azure上创建新数据库后,我尝试在DBContext项目上运行更新数据

我在MVC4项目中的连接字符串有问题

该项目的结构如下:

Solution
   -MVC4-web app project
   -Custom DBContext project
   -Portable Area project (MvcContrib)
我使用在线Azure数据库进行存储,我的所有模型都在自定义db上下文中。该项目编译了find,我甚至让MvcContrib与MVC4和Razor视图引擎一起工作

在Azure上创建新数据库后,我尝试在DBContext项目上运行更新数据库。我得到以下错误:

“…从数据库获取提供程序信息时出错。这可能是由于实体框架使用了不正确的连接字符串造成的。…提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错…”

我的connectionString位于DbContext项目的App.Config文件中:

<connectionStrings>
   <add name="CortexModelContext" providerName="System.Data.SqlClient" connectionString="Server=tcp:k5bqinuyr5.database.windows.net,1433;Database=databaseName;User ID=myname@k5bqinuyr5;Password=MySecretPassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;" />
</connectionStrings>

我做错了什么?我已经检查了密码和连接字符串。它是来自windowsazure.com门户网站的复制粘贴。这里还有什么不对劲?我觉得我已经尽了一切努力来解决这个问题


如果这篇文章中缺少其他信息,请告诉我,我会提供。

当您的上下文位于单独的项目中时,“更新数据库”命令往往无法正常工作。可能MVC4项目的web.config文件中也有连接字符串

如果是,请使用以下命令:

Update-Database -ProjectName <DbContextProject> -StartupProjectName <MvcProject>
更新数据库-ProjectName-StartupProjectName
将占位符替换为相关项目的名称。这应该可以完成任务

干杯,
Dean

这里的问题是,我没有在所有项目中使用连接字符串。当我将连接字符串(当前仅在DbContext项目的App.config中)添加到启动项目的
web.config
中时,一切正常


幸好我没有用一整天的时间来弄清楚这一点。

您是否已将Azure防火墙配置为允许从运行项目的位置进行访问?是的。我以前犯过一次错误。他现在也发生了同样的事情。我使用了以下命令:“updatedatabase-ProjectName MyNamespace.Subspace.Model-StartupProjectName TheMvcProject”。我应该有括号吗?不,没有括号。-ProjectName位应该只是包含DbContext的项目的名称。如果使用-verbose选项,它应该让您知道它实际要连接的服务器。这将给你一个提示,它是否使用了正确的一个!我现在在这里尝试了很多不同的组合。。你能用模型项目名为“MyNamespace.Subspace.model”和启动项目名为“TheMvcProject”写出整个命令吗?当然<代码>更新数据库-ProjectName MyNamespace.Subspace.Model-StartupProjectName TheMvcProject-Verbose第一行是这样的输出<代码>目标数据库是:“MyDb”(数据源:localhost,提供者:System.Data.SqlClient,来源:UserCode)。这就是我在回答的第一行中所说的!很高兴你修好了:)