Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 部署到web服务器时无法连接到AppData中的SQL数据库_Asp.net_Sql Server - Fatal编程技术网

Asp.net 部署到web服务器时无法连接到AppData中的SQL数据库

Asp.net 部署到web服务器时无法连接到AppData中的SQL数据库,asp.net,sql-server,Asp.net,Sql Server,我有一个用C#编写的ASP.Net程序,该程序使用AppData目录中存储的数据库,该程序在我的开发(Win7\SQL 2008R2)中运行良好。当我部署到Win2008R2\SQL 2008 R2服务器时,该程序无法连接到数据库。我正在使用下面的连接字符串。有几个站点建议我将应用程序池设置为使用“网络服务”,因为这具有对AppData目录的修改权限,我已经这样做了,但仍然不起作用,另一个站点建议我将应用程序池设置为“Load User Profile=True”,但仍然没有乐趣 我还想试试别的

我有一个用C#编写的ASP.Net程序,该程序使用AppData目录中存储的数据库,该程序在我的开发(Win7\SQL 2008R2)中运行良好。当我部署到Win2008R2\SQL 2008 R2服务器时,该程序无法连接到数据库。我正在使用下面的连接字符串。有几个站点建议我将应用程序池设置为使用“网络服务”,因为这具有对AppData目录的修改权限,我已经这样做了,但仍然不起作用,另一个站点建议我将应用程序池设置为“Load User Profile=True”,但仍然没有乐趣

我还想试试别的什么,有人能帮我吗

数据源=。\SQLEXPRESS;集成的 安全=SSPI;AttachDBFilename=| DataDirectory |\DB.mdf;使用者 实例=真

我在我的应用程序中获得“对象引用未设置为对象的实例”。在应用程序事件日志中获得“尝试为文件C:\inetpub\wwwroot\ADPhonebook\app\u Data\DB.mdf附加自动命名数据库失败。存在同名数据库,或无法打开指定文件,或该文件位于UNC共享上。”

我真的很感激你的建议,谢谢。
Steven

正如Martin在评论中指出的那样,如果您发布了您收到的确切错误消息(可能还有完整的异常详细信息),那将非常有趣

但这类问题主要与操作系统级别的权限有关

因此,请确保应用程序池的用户(标识)具有对.mdf文件的完全访问(ntfs)权限,然后重试

编辑(在发布确切消息后):
好的,我想这意味着在您部署到的服务器上,Sql server实例上已经有一个名为DB的数据库。因此,您必须删除或重命名该名称,才能附加具有该名称的数据库。

我认为用户权限问题仍然存在。

您收到了什么错误消息?重复的。当使用“Server=Venus\SQLExpress;Database=DB.mdb;Integrated Security=SSPI”登录用户“NT AUTHORITY\NETWORK SERVICE”时,请参阅我的回答和建议(忘记AttachDbFileName=/UserInstance=hack-改为将MDF附加到SQL Server实例)。原因:无法打开显式指定的数据库。[客户端:]。有什么想法吗,马克?Thanks@StevenL:如果您这样指定连接字符串,则必须指定数据库的名称,而不使用.mdb扩展名(必须是您连接的数据库的确切名称)。@stevenL:数据库的名称只是一个名称(在将文件连接到SQL Server时由您选择)-无扩展名(与文件或MS Access“数据库”类似)我仔细检查了网络服务是否对.mdb文件进行了修改。我已经更新了我的帖子以显示错误。Thanks@StevenL:您确定应用程序池标识为“网络服务”吗?另外,我不确定“修改”是否足够。你试过“完全访问”吗?