1

我正在使用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 - 错误定位服务器/指定的实例)

4

2 回答 2

5

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

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

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

·选择合适的协议

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

·启用 SQL Server 浏览器服务

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

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

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

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

让我知道这是否得到解决

于 2012-11-01T20:24:18.470 回答
2

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

综合安全=真

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

于 2012-11-01T20:16:53.970 回答