【问题标题】:Can't connect to SQL Server database in asp.net无法连接到 asp.net 中的 SQL Server 数据库
【发布时间】:2012-10-22 11:07:42
【问题描述】:

我正在使用configurationmanager.appsetting,但cn.Open 行出现错误。

网页表单代码如下:

public partial class admin_CheckDocuments : System.Web.UI.Page
{
    SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["con"]);
    string sql;
    string str;

    protected void Page_Load(object sender, EventArgs e)
    {
        cn.Open();
        str = Request.QueryString["taxid"];

        if (!IsPostBack)
        {
            filldata();
        }
    }

web.config 是:

<configuration>
    <connectionStrings/>
    <appSettings>
       <add key="con" 
            value="Data Source=EGGG\SKDB;Initial Catalog=tax;Integrated Security=true"/>
    </appSettings>

错误是

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

【问题讨论】:

  • 错误是{"建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确,并且SQL Server 配置为允许远程连接。(提供程序:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)"}
  • @user1792379 您是否有一个正在运行的 Sql Server 本地实例或一个在指定位置 (EGGG\SKDB) 运行的实例?

标签: asp.net sql-server


【解决方案1】:

我在您的连接字符串中注意到了这一点:

集成安全=true

这意味着您的代码将尝试使用运行 asp.net 进程的服务器帐户的凭据进行连接。这通常是本地帐户,如网络服务、本地服务或 IIS_IUSRS。您可以更改此设置,但默认情况下您可能没有权限甚至登录到数据库。

【讨论】:

    【解决方案2】:

    引发此问题的原因可能是服务器名称错误、远程连接禁用 和防火墙阻止。

    您能否按照以下步骤解决此问题?

    ·检查运行 SQL Server 的服务器是否可以访问。您可以使用 ping 命令进行测试。例如,ping ** 或 ping 。 ping 命令可能会被防火墙阻止,请确保在防火墙中启用了 ICMP。 More info**

    ·选择合适的协议

    ·根据您选择使用的协议相应地配置 Windows 防火墙。有关如何配置 Windows 防火墙以允许 SQL Server 的详细信息,请查看More info

    ·启用 SQL Server 浏览器服务

    如果满足以下条件,则需要启用 SQL Server Browser Services:

    1.SQL Server 没有监听默认的 1433 端口或者没有使用默认的管道名 \.\pipe\sql\query;

    2.连接字符串中没有指定对应的TCP端口或管道名(如Srv1\SQL2008, 1500)。

    如果您启用了 SQL Server Browser Services,您仍然需要在 Windows 防火墙中打开浏览器服务使用的 UDP 1434 端口。

    如果问题得到解决,请告诉我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多