我已经在 IIS7 中发布了我的网站。它在 DefaultAppPool 中运行。此应用程序池的标识设置为 LocalSystem。IIS 正在运行,我可以从 IIS 运行该应用程序,没有任何问题。
现在我想附加位于 inetpub 的应用程序文件夹中的数据库:
C:\inetpub\wwwroot\EMSApplication\App_Data\ASPNETDB.mdf
我在 SSMS 中添加了新的登录名:NT AUTHORITY\NETWORK SERVICE
和IIS APPPOOL\DefaultAppPool
。
但是当我尝试在 SSMS 中附加该数据库时出现以下错误:
TITLE: Microsoft SQL Server Management Studio
------------------------------
Failed to retrieve data for this request.
(Microsoft.SqlServer.Management.Sdk.Sfc)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476
------------------------------ ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch.
(Microsoft.SqlServer.ConnectionInfo)
------------------------------
CREATE FILE encountered operating system error 5(Access is denied.) while attempting to open or create the physical file 'C:\inetpub\wwwroot\EMSApplication\App_Data\ASPNETDB.MDF'. (Microsoft SQL Server, Error: 5123)
For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.5500&EvtSrc=MSSQLServer&EvtID=5123&LinkId=20476
答案1
我有时在搬家时会遇到这个问题.mdf/.ldf在计算机之间。我经常需要摆弄数据库文件本身的文件权限/所有权才能使其正常工作。
尝试为 SQL Server 提供用户帐户完全访问对 ASPNETDB.MDF 的权限,如果有的话,还有 ASPNETDB.LDF 文件的权限。
此外,SQL Server 帐户可能无权读取 C:\inetpub\wwwroot\EMSApplication\App_Data\ 目录。您可能也需要在此处调整权限。
答案2
我遇到了这个问题,网上的解决方案都不起作用。最后我找到了解决方案 -以管理员身份运行 SSMS。