2013-07-24 85 views
0

,当我想推出的ASP .NET配置站点的安全选项卡为我的ASP NET MVC 4项目出现以下错误很多与该错误有关的问题,但我尝试了很多解决此问题的技巧(我尝试了这里的建议解决方案 - 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版本,在另一台机器上使用开发者版本,因为这些版本无法正常工作。

我的连接字符串如下:

<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生成的用户管理数据库。没有第二个连接字符串,我无法打开帐户控制器的任何操作。

这很奇怪,因为它在一台机器上工作,而不是在另一台机器上工作。我想知道连接字符串是否有问题,但我想SQL Server有一些问题。正如我所说我尝试了各种解决方案,但他们没有工作。

+0

当您使用实体框架时,您自动生成的连接字符串和EF提供程序将是“System.Data.EntityClient”。您的数据库位置无论是app_data还是server.EF都会采取更正措施。 – Niks

回答

0

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

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

+0

实际上,其他数据库的连接字符串使用LocalDb来访问本地.mdf文件,并且它可以工作。这是什么原因,它不会为用户工作? –

+0

@Niks probalby解释它。 EF修正了第一个连接字符串,而ASP.NET试图直接使用第二个字符串连接并失败。尽管如此,该消息是明确的 - 你试图连接到一个不存在的SQL Server实例 –

+0

我发布了一个新的回复,发布这里太长了。 –

0

我在AccountController中添加了我想要在代码中创建的角色,现在我可以向角色注册用户,但是现在出现的问题是,当我将某个操作的Authorize属性设置为只有出现以下错误:

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

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

+0

将调用授权给数据库。我想通过“添加角色”你使用不同的连接字符串修改数据库?所以当你试图使用失败的连接字符串时,它又失败了?请将您的数据库添加到SQL Server并修复连接字符串 –