我有一个应用程序,它使用linq与sql Server Express 2008进行sql。当我在一个单独的DAL项目中使用DBML文件并将其引用到我的web项目时,在执行Sql Server时显示以下错误:
建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。找不到或无法访问服务器。请验证实例名称是否正确,以及SQL Server是否已配置为允许远程连接。(提供程序:SQL网络接口,错误:26-定位指定的服务器/实例时出错)
但是,当我在web项目中使用DBML时,调试没有任何问题。但在Windows 7 64位的IIS上,我得到了:
建立与SQL Server的连接时,发生了与网络相关或特定于实例的错误。找不到或无法访问服务器。请验证实例名称是否正确,以及SQL Server是否已配置为允许远程连接。(提供程序:命名管道提供程序,错误:40-无法打开与SQL Server的连接)
这两个错误有相同的原因吗?连接字符串是否不正确?
我怀疑在第一种情况下,连接字符串在DAL项目中,而不是在您的web项目(它所属的位置)中。请确保将其复制到web项目的web.config
中。
在第二种情况下,我认为承载IIS的机器试图连接到您自己机器上的数据库。如果是,请检查异常:确保将SQL Express实例配置为允许远程连接,启用IP协议(如果用于本地通信,则命名管道),并且IIS计算机可以访问您的计算机。
我认为,您的连接字符串是错误的。
别担心。
检查dbml的designer.cs文件。您将在其中找到'<YourDBMLFile>DataContext()
'构造函数。
和更改连接字符串。确保您的connectionstring
是正确的。