2012-03-07 49 views
1

我有两个在本地运行的visual studio 2010项目。一个是云计划,除了连接本地SQL Express外,还连接到天蓝色表(开发)存储,另一个不是云计划。这两个项目都尝试通过xsd生成的类似代码连接到本地SQL Express数据库,并通过数据绑定网格直接在aspx中连接。非云项目连接正常,但云项目因常见错误而失败:连接到SQL Express的问题

“尝试为文件C:\ Users ... mdf附加自动命名数据库失败。具有相同名称的数据库存在或指定的文件无法打开,或者它位于UNC共享上。“

两个项目都使用相同的连接字符串在Web.config文件:

<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\...mdf; 
    Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> 

在从云项目,我可以连接到Express数据库就好了VS2010服务器资源管理器,但是当项目运行时,它无法连接。云项目还通过Web.config中的另一个连接字符串连接到SQL Azure远程云数据库,并且该连接正常工作。

我看到MS支持文章:http://support.microsoft.com/kb/2002980,并认为可能项目最初是使用不同版本的VS创建的,可能会导致我的问题,所以我对ASP.net 4.0应用程序池进行了建议的IIS更改,但无济于事。

由于SQL Express连接字符串在一个项目中工作,而不在另一个项目中,所以我很难过。是否还有其他配置元素或与失败项目相关的项目是我应该关注的云项目?

+0

连接字符串未显示: ejm 2012-03-07 20:46:28

+0

我让连接字符串显示出来。为了突出显示代码示例(尤其是可能被解释为HTML的示例),请使用编辑器工具栏上的代码按钮“{}”。 – 2012-03-07 21:03:29

回答

1

您是否将数据库附加到实际的SQL Server Express实例?如果是这样,请删除所有AttachDbFilenameUser Instance废话。为了简单和一致,你可以在本地使用SQL认证。所以,你应该有类似:

<add name="WorkoutLogConnectionString1" 
    connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName; 
    User ID=SQLAuthUsername;Password=password" providerName="System.Data.SqlClient" /> 
+0

这听起来像一个愚蠢的问题,但用户名和密码是什么?我知道他们是为我的SQL Azure帐户,但是当我连接到本地数据库SSMS显示PCName \用户没有密码。当我尝试这些时,连接失败。 – ejm 2012-03-07 22:40:40

+0

如果您创建了本地SQL用户名和密码,则可以使用它。否则,你应该只保留'Integrated Security = True'部分来代替上面提到的User ID和Password部分。我只是建议使用SQL auth来保持它与Azure的一致性,所以如果你希望你*可以*创建一个SQL用户名和密码,并拥有足够的应用程序权限。您甚至可以使其与您的Azure帐户相匹配,以便只需更改服务器名称即可。 – 2012-03-07 22:44:22

+0

谢谢。我有一个奇怪的混合的SQL Server 2008 R2,同时仍然使用一些SQL Express,因此必须将连接字符串数据源指定为“(本地)”。 – ejm 2012-03-08 01:31:00

2

你tyring同时运行两个项目(在同一时间 - 多启动项目)。如果是这样,这确实是SQL Express的常见问题。当您在VS Server Explorer中打开数据库时也经常发生。如果您有多个应用程序访问同一个数据库,我建议您手动将数据库附加到SQL Server Express中。你可以通过:

  1. 打开SSMS(Sql Server Management Studio),连接到你本地的SQL Express实例。
  2. 导航到数据库分支
  3. 右键 - >附加数据库
  4. 浏览到做你的MDF文件

现在改变你的连接到Aaron建议的连接。一般来说,我建议现在使用AttachDbFilename和UserInstance,但直接附加数据库并将其与SQL Server的常规独立实例一起使用。节省很多头痛。

+1

更不用说,整个用户实例功能已被弃用... – 2012-03-07 21:10:36

+0

谢谢!我挣扎了一点点,让SSMS找到mdf文件(它无法导航我的整个目录树),但我将文件移到了我的SQL Server DATA目录,一切正常。 – ejm 2012-03-08 01:20:43