在安装在 IIS 7 上的 Web 应用程序中,我需要连接到 SQL Server Express 数据库文件(仅用于测试目的)。我在 web.config 文件中使用以下连接字符串:
<configuration>
<connectionStrings>
<add name="MyDbConnection" connectionString="data source=.\SQLEXPRESS;Integrated Security=true;AttachDBFilename='C:\Users\UserName\CSharp\WebApp004_TestDB\App_Data\Database1.mdf';User Instance=true;Connection Timeout=15" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
C:\Users\UserName\CSharp\WebApp004_TestDB\App_Data
我还为该文件夹设置了 NTFS 权限,如下所示:
- IIS_IUSRS = 完全控制
- IUSR = 完全控制
- NT SERVICE\MSSQL$SQLEXPRESS = FullControl
- IIS AppPool\[MyAppPoolName] = FullControl
那仍然没有帮助。当我尝试通过我的 C# 代码连接到该数据库时,出现异常:
尝试为文件 C:\Users\UserName\CSharp\WebApp004_TestDB\App_Data\Database1.mdf 附加自动命名数据库失败。存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。
请注意,相同的代码可以在另一台安装了实际 SQL Server 的机器上运行(在我使用 DB 用户名和密码的地方使用了不同的连接字符串。)
知道我在这里想念什么吗?