我有两个我在本地运行的visual studio 2010项目。一个是云项目,除了本地SQL Express之外还连接到azure表(开发)存储,另一个不是云项目。两个项目都尝试通过xsd生成的类似代码连接到本地SQL Express数据库,也可以通过数据绑定网格直接连接到aspx。非云项目连接正常,但云项目失败并出现常见错误:
“尝试为文件C:\ Users ... mdf附加自动命名的数据库失败。存在具有相同名称的数据库,或者无法打开指定的文件,或者它位于UNC共享上。”< / p>
两个项目在Web.config文件中使用相同的连接字符串:
<add name="WorkoutLogConnectionString1"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\...mdf;
Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />
在云端项目的VS2010服务器资源管理器中,我可以很好地连接到快速数据库,但是当项目运行时,它无法连接。云项目还通过Web.config中的另一个连接字符串连接到SQL Azure远程云数据库,该连接工作正常。
我看到MS支持文章:http://support.microsoft.com/kb/2002980并且认为项目最初可能是使用不同版本的VS创建的,这可能会导致我的问题,所以我对ASP.net 4.0应用程序进行了建议的IIS更改游泳池,但无济于事。
由于SQL Express连接字符串在一个项目中工作而在另一个项目中不工作,因此我感到难过。是否有一些其他配置元素或与失败项目相关的东西是我应该关注的云项目?
答案 0 :(得分:2)
您是否同时运行两个项目(同时 - 多个启动项目)。如果是这样,它确实是SQL Express的常见问题。在VS Server Explorer中打开数据库时也经常发生这种情况。如果您有多个应用程序访问同一个数据库,我建议您手动将数据库附加到SQL Server Express中。你可以这样做:
现在将您的连接更改为Aaron建议的连接。通常我建议现在使用AttachDbFilename和UserInstance,而是直接附加数据库并将其用作SQL Server的常规独立实例。避免了很多麻烦。
答案 1 :(得分:1)
您是否已将数据库附加到实际的SQL Server Express实例?如果是,请删除所有AttachDbFilename
和User Instance
废话。为了保持简单和一致,您可以在本地使用SQL身份验证。所以你应该有类似的东西:
<add name="WorkoutLogConnectionString1"
connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=DatabaseName;
User ID=SQLAuthUsername;Password=password" providerName="System.Data.SqlClient" />