0

当我想为我的 ASP NET MVC 4 项目启动 ASP .NET 配置站点中的安全选项卡时,会出现以下错误:

http://s14.postimg.org/jvizqragv/error_sql.png

我知道有很多与该错误相关的问题,但我尝试了很多解决这个问题的技巧(我在这里尝试了建议的解决方案 - http://blogs.msdn.com/b/walzenbach/archive/2010 /04/14/how-to-enable-remote-connections-in-sql-server-2008.aspx但错误仍然存​​在)。

但让我解释一下解决方案中我的数据库是什么。我有一个本地数据库(App_Data 中的一个 .MDF 文件)和一个由 ASP NET MVC 生成的用于用户身份验证的数据库。它们都放在 App_Data 文件夹中,因为我试图在不同的机器上使用这个解决方案。奇怪的是,在我家里的笔记本电脑上没有这样的问题——我能够创建角色、探索用户和“安全”选项卡中的所有功能,我认为我的台式机上的 SQL Server 可能存在一些问题——我在我的笔记本电脑上使用 Express 版,在另一台机器上使用 Developer 版。

我的连接字符串如下:

<add name="FootballTransfers20130717145140Context" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\FootballTransfers.mdf;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=30"
  providerName="System.Data.SqlClient" />
<add name="DefaultConnection" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\DefaultConnection.mdf;Integrated Security=True;MultipleActiveResultSets=True;Connect Timeout=30"
  providerName="System.Data.SqlClient" />

第一个用于实体框架,与我存储应用程序特定数据的数据库有关。第二个是由 SQL 生成的用户管理数据库。如果没有第二个连接字符串,我将无法打开 Account 控制器的任何操作。

这很奇怪,因为它可以在一台机器上运行,而不能在另一台机器上运行。我想知道连接字符串是否有问题,但我猜 SQL Server 有问题。正如我所说,我尝试了各种解决方案,但没有奏效。

4

2 回答 2

0

我在 AccountController 中添加了我试图在代码中创建的角色,现在我可以使用角色注册用户,但现在出现的问题是,当我将 Authorize 属性放在某个操作上时,只有具有某些角色的用户可以请求他们,出现以下错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

当我删除该属性以便任何人都可以访问它时,该操作可以正常工作。我在网上找到了一些文章说必须在配置中指定提供程序,但是一些错误不断出现,这些标签是未知的。

于 2013-07-24T11:21:28.030 回答
0

LocalDB 只是 SQL Server Express 的一项功能。您必须在机器上安装 SQL Server Express 或将数据库导入 SQL Server 并更改连接字符串。

在生产中,您可能无论如何都必须迁移到完整的 SQL Server 版本。

于 2013-07-24T08:50:36.020 回答