我正在使用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 - 查找服务器/实例时出错 指定)
答案 0 :(得分:5)
抛出此问题的原因可能是服务器名称错误,禁用了远程连接 和防火墙阻止。
您能否按照以下步骤解决此问题?
·检查可以访问运行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端口。
如果问题得到解决,请告诉我
答案 1 :(得分:2)
我在你的连接字符串中注意到了这一点:
Integrated Security = true
这意味着您的代码将尝试使用运行asp.net进程的服务器帐户的凭据进行连接。这通常是本地帐户,如网络服务,本地服务或IIS_IUSRS。您可以更改此设置,但默认情况下,您甚至无权登录数据库。