从IIS无法打开数据库错误

3

你好,我第一次尝试在IIS上运行我的应用程序。 在Visual Studio中开发时一切正常,但是当我将应用程序添加到IIS时出现了以下错误:

    Cannot open user default database. Login failed.
    Login failed for user 'IIS APPPOOL\forum'.

    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

    Exception Details: System.Data.SqlClient.SqlException: Cannot open user default database.

当我从Visual Studio运行网站时,该怎么办? 编辑 我进行了更多的挖掘,发现我需要将应用程序池标识设置为NetworkService。我已经这样做了,但现在我遇到了另一个错误:
无法打开物理文件“D:\ Projects IDE \ Visual Studio \ MyWork \ Websites \ Forum \ App_Data \ ASPNETDB.MDF”。操作系统错误5:“5(拒绝访问)”。 尝试附加自动命名的数据库文件D:\ Projects IDE \ Visual Studio \ MyWork \ Websites \ Forum \ App_Data \ ASPNETDB.MDF失败。存在同名数据库,指定的文件无法打开,或者位于UNC共享上。

你使用什么连接字符串来连接数据库?如果在项目|属性|Web中选择IIS运行应用程序会发生什么? - Igor
2个回答

1
请检查以下两个地方: 1. NetworkService身份(IIS应用程序池的默认身份)或此应用程序池(IIS APPPOOL\forum)对文件夹的访问权限。 2. 连接字符串凭据。如果有“集成安全性”,请提供特定的用户名和密码。

0

我之所以收到这个非显式错误,是因为我将应用程序池设置为 .NET 2.0,而不是 .NET 4.0。 这个服务负责身份验证。通常,如果框架不正确,则会显示有关未识别框架 .dll 的其他类型的错误,但在这种情况下不会。 如果发生这种情况,请检查以下内容:

  1. IIS APPPOOL 后面的值是当前进程所运行的应用程序池的名称。 在您的情况下,有一个名为 forum 的 AppPool。
  2. 检查应用程序池是否使用了所需的管道和 .NET Framework 版本以运行该应用程序。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接