3

抱歉,如果这是网络上最常见的问题,但现在轮到我了。我正在尝试在 MS Sql Server 2008 下的 IIS 7 上发布我的 asp.net mvc 应用程序。我在 Windows Server 2008 虚拟机上。我收到以下经典错误:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

在 SQLServer 下,选中允许远程连接。我的连接字符串是:

数据源=.\MSSQLSERVER;初始目录=mydbname;用户ID=sa;密码=mypassword

我也试过没有用户名/密码和“集成安全=真”。仅安装了一个 SQLServer 实例。我试图在本地和远程访问我的网页。虚拟机上没有活动防火墙。

4

6 回答 6

3

确保在 SQL Server 配置工具中将 TCP/IP 设置为传输。

于 2009-02-13T16:51:51.753 回答
3

谢谢大家的尝试。我找到了解决方案,它与我忘记提供的信息有关。我希望它能在这些事情上帮助像我一样的新人。

我使用NHibernate,连接字符串实际上在nhibernate.cfg.xml 文件中。web.config 文件中的那个实际上由我的各种提供者(用户/角色)使用。我通过从 NH 配置文件中删除连接字符串来解决这个问题。我现在用以下方法检索它:

string connectionString = ConfigurationManager.
ConnectionStrings["myConnectString"].ConnectionString;

我将它设置在 NH 中:

Configuration cfg = new Configuration();
cfg.Configure(cfgFile);
cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionString, connectionString);

现在我得到:

无法打开登录请求的数据库“mydb”。登录失败。用户“NT AUTHORITY\NETWORK SERVICE”登录失败。

但这是另一个故事,如果我找不到答案,是另一个问题。

PS:我必须使用“。” 作为服务器名称,否则 .\MSSQLSERVER 会产生一个新错误“无效的连接字符串”。感谢 Ian 和 Jared 提供小费。

于 2009-02-13T17:24:07.480 回答
1

这是来自网络配置的实际数据源行吗?

如果是这样,那么它当然应该用引号引起来,为了安全起见添加 ; 最后并检查这是您的实例的实际名称,您可以检查 Windows 服务以获取您的实例名称。

尝试替换localhost而不是.使用连接字符串中的凭据从 sql server management studio 连接吗?

于 2009-02-13T16:53:49.173 回答
1

正如罗伯特所说,尝试:

ConnectionString="Data Source=(LOCAL)\MSSQLSERVER;Initial Catalog=mydbname;User ID=sa;Password=mypassword"

我不确定连接字符串是否区分大小写,但我注意到您使用的是“Id”而不是“ID”。

编辑:不确定是否需要 \MSSQLSERVER?

于 2009-02-13T17:01:55.613 回答
1

你确定它是 SQL 的命名实例吗?

尝试

数据源=.;初始目录=mydbname;用户ID=sa;密码=mypassword

更新:

这个网站

您是否尝试过以下操作:

  • 确保服务器机器可访问,例如,DNS 可以正确解析,您可以 ping 服务器(并非总是如此)。
  • 确保 SQL Browser 服务正在服务器上运行。
  • 如果服务器上启用了防火墙,则需要将 sqlbrowser.exe 和/或 UDP 端口 1434 置于异常中。
于 2009-02-13T17:03:12.223 回答
0

好吧,自从早上(过去 8 小时)以来,我面临着同样的上述问题,做了很多事情,比如创建一个域名,设置一个新的应用程序池身份,但没有任何效果:(

我刚刚web.config对连接字符串的文件进行了一些小的更改,即:

Integrated Security=False 而不是 True... 现在它运行良好

于 2013-12-13T07:55:08.990 回答