web.config中配置数据库连接字符串从来没成功过问题。。

lunar2008 2009-04-26 08:59:26
我是这么写的:
在web.config中:
<connectionStrings>
<add name="DBCon" connectionString="data source=服务器名;User ID=用户名;pwd=密码;Initial Catalog=数据库名" />
</connectionStrings>

在App_Code文件中我建了个类(DB.cs),在这里我这么引用的:

public static SqlConnection creatCon()
{
string con = ConfigurationManager.ConnectionStrings["DBCon"].ConnectionString;
return new SqlConnection(con);
}


然后在页面调用时我是这么写的:
sqlconnection con = DB.creatCon();

========================
问题:
1、大家不要挑我这里面的单词写的对不对,这个我保正对,就是错也是写的马虎;
2、我的那个连接字符串写法我换了全世界所有的写法都试过,都不行。
3、我不在web中配置连接字符串,就把那个字符串放在DB.cs中百分百好使!
4、我在自己家试,传网上试都不行;
5、错误提示:(就是数据库没连接上,无法访问,不要挑这里面是2005还是什么,和这个一点关系没有。。)
具体:
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)

大家帮看看,网站全是这么配,全成功,为什么我的就不行,就算我新建个网站,什么代码都没有,就测试这个功能都出现上面的错误提示
...全文
1368 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
中年秃头大叔 2009-04-26
  • 打赏
  • 举报
回复
在建立与服务器的连接时出错。在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错)
可能是因为以下原因:

1. 数据库引擎没有启动。

有两种启动方式:

(1)开始->程序->Microsoft SQL Server 2005->SQL Server 2005外围应用配置器,在打开的界面单击"服务的连接的外围应用配置器",在打开的界面中找到Database Engine,单击"服务",在右侧查看是否已启动,如果没有启动可单击"启动",并确保"启动类型"为自动,不要为手动,否则下次开机时又要手动启动;

(2)可打开:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager,选中SQL Server 2005服务中SQL Server(MSSQLSERVER) ,并单击工具栏中的"启动服务"按钮把服务状态改为启动;

使用上面两种方式时,有时候在启动的时候可能会出现错误,不能启动,这时就要查看"SQL Server 2005配置管理器"中的SQL Server 2005网络配置->MSSQLSERVER协议中的VIA是否已启用,如果已启用,则把它禁止.然后再执行上述一种方式操作就可以了.

2. 是否已经允许远程连接。

这个部分可以简单的分为4个方面,分别是在 SQL Server上启用远程连接、启用SQL Server 浏览服务、在Windows 防火墙中为SQL Server 2005 创建例外和在Windows 防火墙中为“SQLBrowser”创建例外。下面是几个具体的操作方式,摘自MSDN,个人觉得文章的黑体部分应当特别的一起我们的注意。


在SQLServer 实例上启用远程连接
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“数据库引擎”, 选中“远程连接”,在右边选中“本地连接和远程连接”,
再选择要使用的协议,( 这个地方应当启用TCP/IP 和命名管道服务!)单击“应用”,您会看到下消息:
“直到重新启动数据库引擎服务后,对连接设置所做的更改才会生效。”,单击“确定”按钮返回
4.展开“数据库引擎”, 选中“服务”,在右边单击“停止”,等到 MSSQLSERVER 服务停止,
然后单击“启动”,重新启动MSSQLSERVER 服务。

启用 SQLServer 浏览器服务
1.指向“开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器”
2.在“SQL Server 2005 外围应用配置器”页, 单击“服务和连接的外围应用配置器”
3.然后单击展开“SQL Server Browser”, 选中“服务”,在右边“启动类型”选择“自动”,
再单击“启动”,单击“确定”按钮返回

在Windows 防火墙中为“SQL Server 2005”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\ MSSQL.1 \MSSQL\Binn\sqlservr.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。 MSSQL.1 是占位符,对应数据库实例ID。
4.对每个需要打开远程访问的SQL Server 2005 实例,重复步骤 1 至 3。

在Windows 防火墙中为“SQLBrowser”创建例外
1.在 Windows 防火墙设置界面中,选择“ 例外” 选项卡,然后单击“添加程序”
2.在“添加程序窗口”中单击“浏览”
3.然后找到“C:\ProgramFiles\Microsoft Files\Microsoft SQL Server\90\Shared\sqlbrowser.exe”,
单击“确定”返回
注意 : 路径可能会根据 SQL Server 2005 安装不同而不同。
lunar2008 2009-04-26
  • 打赏
  • 举报
回复
结贴了!谢谢大家帮助!虽然还没解决,不过最后这位朋友的方法我会仔细研究下的!
xuezhanliang6886 2009-04-26
  • 打赏
  • 举报
回复
UP!
中年秃头大叔 2009-04-26
  • 打赏
  • 举报
回复
<appSettings>
<add key="connectionstring" value="server=;database=数据库名;uid=sa;pwd=sa密码(没有的话什么用都不用填);max pool size=10000;min pool size=1"/>
</appSettings>


db.cs中

public static SqlConnection creatCon()
{
string con = ConfigurationManager.ConnectionStrings["DBCon"].ConnectionString;
return new SqlConnection(con);
}
换成
public static readonly string ConnectionStringLocalTransaction ConfigurationManager.AppSettings["connectionstring"];

调用时只用:sqlconnection sqlcon=new sqlconnection(db.ConnectionStringLocalTransaction)就可以了。

百分百可以。


lunar2008 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyq11 的回复:]
SQL SERVER里
在"外围配置"工具把"允许TCP/IP和命名管道"勾上,当然"仅TCP/IP"也可以
然后从"配置管理器"中找到"...2005网络配置"->"网络协议"->"TCP/IP"查看里面的端口号,默认是1433.
在相应的防火墙新增个例外,比如默认的1433这样就可以远程连接了.
[/Quote]

我的电脑装的是VS2005和SQL2000,没有SQL2005,只有这些,我打不到你说的那些东东:
wuyq11 2009-04-26
  • 打赏
  • 举报
回复
SQL SERVER里
在"外围配置"工具把"允许TCP/IP和命名管道"勾上,当然"仅TCP/IP"也可以
然后从"配置管理器"中找到"...2005网络配置"->"网络协议"->"TCP/IP"查看里面的端口号,默认是1433.
在相应的防火墙新增个例外,比如默认的1433这样就可以远程连接了.
lunar2008 2009-04-26
  • 打赏
  • 举报
回复
成功了成功了!我传到网上就行,在家里就不行,像是远程受限制,但我在家里也没用到远程的连接啊??可能是我的环境配置使得我自己的机器无法在本机测试web中的连接字符串吧??
lunar2008 2009-04-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jingshuaizh 的回复:]
<add key="ConnectionString" value="Application Name=IPTV;Initial Catalog=DEVDB;Data Source=127.0.0.1;User ID=sa;password=sa;Pooling=True"/>

connectionString要改成value
name 改成 key
[/Quote]

但是我没有改,就照我以前的方法ConfigurationManager.ConnectionStrings["DBCon"].ConnectionString确实能取出值呀,这个方法是在网上看到他们这么写的,我也试了确实能取出那个web中的连接字符串,但为什么
return new SqlConnection(ConfigurationManager.ConnectionStrings["DBCon"].ConnectionString);
就不行,而

return new SqlConnection(“data source=服务器名;User ID=用户名;pwd=密码;Initial Catalog=数据库名")这么写就成功
pdsnet 2009-04-26
  • 打赏
  • 举报
回复
data source=服务器名 多换几种形式 试试.
No_Data_Found 2009-04-26
  • 打赏
  • 举报
回复
使用系统 Connection 控件试一次
蓝海D鱼 2009-04-26
  • 打赏
  • 举报
回复
<add key="ConnectionString" value="Application Name=IPTV;Initial Catalog=DEVDB;Data Source=127.0.0.1;User ID=sa;password=sa;Pooling=True"/>

connectionString要改成value
name 改成 key
lunar2008 2009-04-26
  • 打赏
  • 举报
回复
我用的是VS2005,什么完意都安了,平时一直用来着,都正常

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧