我在 Windows Server 2008 上使用必须访问服务器的 ASP.NET 应用程序运行 SQL Server 2008 Express Edition。ASP.NET 应用程序与在NetworkService
帐户上运行的应用程序池相关联。该帐户又在所需数据库中的 SQL Server 上具有登录和用户记录。当我尝试运行 ASP.NET 网站时,我得到一个空白页面,在错误日志中查看时,我似乎得到了以下信息事件记录:
用户“NT AUTHORITY\NETWORK SERVICE”登录失败。原因:无法打开明确指定的数据库。[客户:myLocalMachine]
连接字符串有Trusted_Connection=True
; 并指定所需的数据库。
当我明确指定用户名和密码时,我收到另一个登录错误,指出密码不正确,即使相同的 un/pw 组合在 SQL Server Management Studio 中有效。该NETWORK SERVICE
帐户似乎拥有数据库所需的所有权限。另外,我做了一个测试 ASP.NET 网站项目,它从该数据库中的表中进行简单的选择,并使用相同的配置文件我没有收到错误,它似乎工作。
是否与信任级别有关,因为原始的 ASP.NET Web 应用程序引用了各种 DLL,包括开源库。此外,应用程序似乎无法写入事件日志本身,从而引发安全异常,即使配置文件中的所有内容(包括 machine.config)都表明应用程序完全信任。