【发布时间】:2011-03-20 16:58:18
【问题描述】:
我有一个用 C# 编写的 ASP.Net 程序,它使用存储在 AppData 目录中的数据库,当我部署到 Win2008R2\SQl 2008 R2 服务器时,该程序在我的开发 (Win7\SQL 2008R2) 上完美运行无法连接到数据库。我正在使用下面的连接字符串。几个站点建议我将应用程序池设置为使用“网络服务”,因为这对 AppData 目录具有修改权限,我已经这样做了,但它仍然无法正常工作,另一个站点建议我将应用程序池设置为“加载用户配置文件 = True”但仍然没有快乐。
我正在努力尝试其他方法,有人可以帮忙吗?
数据源=.\SQLEXPRESS;集成 安全性=SSPI;AttachDBFilename=|数据目录|\DB.mdf;用户 实例=真
我得到“对象引用未设置为对象的实例。”在我的应用程序中,“尝试为文件 C:\inetpub\wwwroot\ADPhonebook\App_Data\DB.mdf 附加自动命名的数据库失败。存在同名的数据库,或者无法打开指定的文件,或者它是位于 UNC 共享上。”在应用程序事件日志中
非常感谢任何建议,谢谢。 史蒂文
【问题讨论】:
-
你得到什么错误信息?
-
Can't access SQL Server file in the server machine 的副本。请参阅我的回答和建议(忘记 AttachDbFileName=/UserInstance= hack - 改为将 MDF 附加到 SQL Server 实例)
-
当使用“server=Venus\SQLExpress;Database=DB.mdb;Integrated Security=SSPI”时,我得到“用户'NT AUTHORITY\NETWORK SERVICE'登录失败。原因:无法显式打开指定的数据库。[客户端:]”。有什么想法吗?谢谢
-
@StevenL:如果您像这样指定连接字符串,则必须指定不带 .mdb 扩展名的数据库名称(它必须是您附加的数据库的确切名称)。跨度>
-
@stevenL:数据库的名称只是一个名称(您在将文件附加到 SQL Server 时选择)- 没有扩展名(如文件或 MS-Access“数据库”)
标签: asp.net sql-server