当两者都在不同的机器上时,如何从IIS连接到MS SQL。
MS SQL被configuration为Windows身份validation。
我越来越:
用户login失败。 用户没有与受信任的SQL Server连接相关联。 说明:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪,了解有关错误的更多信息以及源代码的位置。
Exception Details: System.Data.SqlClient.SqlException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.
如何正确设置身份validation?
你想向SQL Server进行身份validation吗? IIS应用程序池标识或Web客户端用户标识? 换句话说,你在IIS / ASP中冒充了吗? 而当你说'IIS',你的意思是某种forms的ASP / ASP.Net进程/应用程序池,对不对?
如果您不模拟,则SQL将validation您的应用程序池标识。 如果您的应用程序池以域用户身份运行,那么该域名就是suer。 如果应用程序池作为networking服务或LocalSystem运行,则它将是主机标识(domain \ hostname $ account)。 如果应用程序池以本地用户或本地服务运行,则不受支持,您必须使用一个受支持的标识。
如果您冒充,那么您实际上正在委派客户端用户身份,为此您需要启用IIS / ASP以进行成本受控的委派。 有大量的文献如何做到这一点:
当然,IIS和SQL Server都应该是域间的信任关系,否则authentication是不可能的(相同的用户/密码“诡计”是一个可怕的黑客攻击)。
一旦你确定谁的身份validationshoudl导致,你可以采取步骤,以允许授权内SQL Server,这是美国人的步骤( 创build一个login ,授予适当的权利, 创build一个用户 ,授予适当的权利)。
作为一个方面说明,代码不应该让exception处理。 也许是ELMAH的时间?
根据SQL Server的版本,您可能错过了启用远程连接这一次: http : //support.microsoft.com/kb/914277 。
另外,不要使用您的应用程序进行testing,而应该使用Management Studio或Management Studio Express进行testing。 您的应用程序目前只是在等式中添加另一个variables因素,因此首先我们需要确定您可以使用已知良好的事情成功地从远程计算机进行连接。 一旦确认我们可以把IIS带回来,并从那边解决它。
我认为这取决于你的Web应用程序写了什么语言。它是否有关于数据访问方法的任何文档,比如ADO或类似的东西?
我在两台机器上创build了一个名字相同的用户。 设置由该用户运行的IIS池并将用户分配给另一台服务器上的SQL组。
帮助到目前为止。