我有一个ASP.NET MVC应用程序,它在托管服务器上已经超过一年,连接到SQL Server。我不得不改变托管服务,新的支持MVC 1.0。我还将非MVC ASP应用程序移动到同一个托管服务。
现在,当我尝试验证用户登录时,基于MY MVC的应用程序会重新发出此错误。
建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)
现在,非MVC应用程序可以访问完全相同的数据库并对用户进行身份验证。从我的开发盒运行MVC应用程序连接正常。当我从运行IIS 7的内部SQL 2008服务器安装并运行该站点时,它也可以正常运行/连接/验证。
我和主机支持技术人员一样,不知道完全相同的连接字符串如何在除托管服务器之外的每个地方工作,并且只在从ASP.NET MVC Web应用程序内部运行时才会生效。
非常感谢任何想法。
答案 0 :(得分:0)
您是否在连接字符串中使用SQL身份验证或Windows身份验证?如果您使用的是Windows身份验证,则IIS应用程序使用的默认帐户是NETWORK SERVICE。您需要允许此用户访问您的数据库。
您可能想要检查运行应用程序池的用户。非MVC应用程序可能在与MVC应用程序不同的用户下运行。