部署到Web Server时,ASP.Net应用程序无法登录到SQL Server数据库
我在将ASP.NET V2 Web应用程序部署到我们的部署环境时遇到问题,并且在sql server设置方面遇到麻烦。
当我运行网站时,用户" MOETP \ MOERSVPWLG $"的登录失败。尝试连接数据库时发生错误。
这似乎是网络服务用户,这是我希望从应用程序获得的行为,但是我似乎无法允许网络服务用户访问数据库。
有关设置的一些详细信息。 IIS 6和SQL Server 2005都在部署环境中的同一服务器上设置。与我所做的测试设置相比,唯一的变化是将数据库连接字符串指向新的实时数据库,然后将所有内容复制过来。
我现在的假设是,需要做一些对SQL Server安装程序的操作,以允许来自asp.net的连接。但是我看不出来会是什么。
有任何想法吗?
解决方案
确保为要尝试登录的用户(如sql服务器)创建了登录名。
可能会有一些不同的事情。
我们是否正在使用集成的Windows身份验证?如果是这样,则需要确保用户ASP.net正在运行,并且可以与数据库对话(或者模拟可以对话的数据库)。
Web服务器是否具有与数据库对话的权限?有时,将Web服务器部署在DMZ中。
如果我们使用的是SQL Server登录名,那么具有相同权限的生产服务器上是否存在相同的登录名?
听起来我们可以正常连接到数据库,并且正在使用集成的Windows身份验证。
使用集成的Windows身份验证,无论应用程序池用户身份正在使用什么,都将使用与数据库的连接。我们必须确保asp.net使用的用户身份在数据库服务器上。
如果是全新安装,则可能无法完成所有安装。检查SQL Server配置管理器,http://msdn.microsoft.com/en-us/library/ms174212.aspx。分步说明http://download.pro.parallels.com/10.3.1/docs/windows/Guides/pcpw_upgrade_guide/7351.htm。
我们在帖子中指定的用户名就是一台计算机上的网络服务帐户在其他计算机上的外观,即" DOMAIN \ MACHINENAME $"。
如果要从一台计算机上的IIS6连接到另一台计算机上的SQL Server,并且我们正在使用网络服务作为应用程序池的进程标识,则需要显式添加" MOETP \ MOERSVPWLG $"作为SQL Server的登录名,并将其映射适当的数据库用户和角色。输入与登录名完全相同的名称(当然要加上引号)。