by 陈少俊
2011.7.5 11:12
几个免费的中文分词模块 -|Ultra 发表于 2005-8-14 20:19:05
几个月前做毕业论文的时候需要用到中文分词技术,现在总结一下我所找到的资料。
一、什么是中文分词
众所周知,英文是以词为单位的,词和词之间是靠空格隔开,而中文是以字为单位,句子中所有的字连起来才能描述一个意思。例如,英文句子“I am a student”,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道“student”是一个单词,但是不能很容易明白「学」、「生」两个字合起来才表示一个词。把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。“我是一个学生”,分词的结果是:“我 是 一个 学生”。
中文分词是其他中文信息处理的基础,搜索引擎只是中文分词的一个应用。其他的比如机器翻译(MT)、语音合成、自动分类、自动摘要、自动校对等等,都需要用到分词。
目前研究中文分词的大多是科研院校,清华、北大、中科院、北京语言学院、东北大学、IBM研究院、微软中国研究院等都有自己的研究队伍,而真正专业研究中文分词的商业公司除了海量科技以外,几乎没有了。
Google的中文分词技术采用的是美国一家名叫 Basis Technology(http://www.basistech.com)的公司提供的中文分词技术,百度使用的是自己公司开发的分词技术,中搜使用的是国内海量科技(http://www.hylanda.com)提供的分词技术。业界评论海量科技的分词技术目前被认为是国内最好的中文分词技术,其分词准确度超过99%,由此也使得中搜在搜索结果中搜索结果的错误率很低。(以上内容摘录自附录1)
二、计算所汉语词法分析系统 ICTCLAS
中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐马模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),该系统的功能有:中文分词;词性标注;未登录词识别。分词正确率高达97.58%(最近的973专家组评测结果),基于角色标注的未登录词识别能取得高于90%召回率,其中中国人名的识别召回率接近98%,分词和词性标注处理速度为31.5KB/s。ICTCLAS 和计算所其他14项免费发布的成果被中外媒体广泛地报道,国内很多免费的中文分词模块都或多或少的参考过ICTCLAS的代码。
下载页面: http://www.nlp.org.cn/project/project.php?proj_id=6
由于 ICTCLAS 是由 C 语言写成的,现在主流的开发工具用起来不太方便,于是有一些热心的程序员把 ICTCLAS 改为 Java 和 C# 等其他语言。
(1)fenci,Java 的 ICTCLAS,下载页面: http://www.xml.org.cn/printpage.asp?BoardID=2&id=11502
(2)AutoSplit,另一个 Java 的 ICTCLAS,已经找不到下载页面,点击本地下载
(3)小叮咚中文分词,曾经有下载页面,现在找不到了。据作者介绍,从 ICTCLAS 中改进,有 Java,C# 和 C++ 三个版本,介绍页面: http://www.donews.net/accesine
三、海量智能分词研究版
海量智能计算技术研究中心为了使中文信息处理领域的研究者们能够共同分享海量智能中心的研究成果,共同提高中文信息处理水平,特此发布《海量智能分词研究版》,供专家、学者和爱好者进行研究。
下载页面: http://www.hylanda.com/cgi-bin/download/download.asp?id=8
四、其他
(1)CSW中文智能分词组件
运行环境:Windows NT、2000、XP 或更高,可以在 ASP,VB 等微软的开发语言中调用。
简介: CSW中文智能分词DLL组件,可将一段文本自动的按常规汉语词组进行拆分,并以指定方式进行分隔,且可对其拆分后的词组进行语义、词频标注。其广范应用于各行各业的信息资料检索、分析。
下载页面: http://www.vgoogle.net/
(2) C# 写的中文分词组件
据作者介绍,一个 DLL 文件,可以做中英文分词组件。完全C#托管代码编写,独立开发。
下载页面: http://www.rainsts.net/article.asp?id=48
附录:1. Winter;中文搜索引擎技术揭密:中文分词;http://www.e800.com.cn/articles/98/1091788186451.html
by 陈少俊
2011.6.3 12:29
新版.Net开发必备十大工具 收藏 Snippet Compiler Snippet Compiler是一个基于 Windows 的小型应用程序,你可以通过它来编写、编译和运行代码。如果你具有较小的代码段,并且你不想创建完整的 Visual Studio .NET 项目(以及该项目附带的所有文件),则该工具会很有用。现在Snippet Compiler已经支持.NET Framework 3.5,最新版本为Snippet Compiler Live 2008 Ultimate Edition for Developers (Alpha)。Microsoft Source Analysis for C# Microsoft Source Analysis for C#是一款C#(不支持VB.NET)代码规范检查工具,前身是微软内部代码规范检查和代码格式强制工具StyleCop,目的是帮助项目团队执行一系列常用的源代码格式规范,它会根据预定义的C#代码格式的最佳实践进行检查,与FxCop不同的是它直接对源代码进行检查,且并不提供灵活的规则设置,强制开发者使用相同的习惯进行C#代码的编写。GhostDoc GhostDoc是Visual Studio的一个免费插件,可以帮助开发者生成比较完整规范的XML格式代码注释,如果你的代码遵循微软类库开发人员设计规范 ,由它自动产生的注释就已经完全可以很好地表达开发者创建的方法或者属性的意图,无需手工再进行修改。有了这些标准的XML注释,我们可以使用微软的文档工具Sandcastle生成专业级别的帮助文档。Sandcastle Sandcastle是微软发布的一个帮助文档生成工具,它通过反射程序集中的源代码和添加代码到中的XML注释来创建专业级别的帮助文档。Sandcastle于2006年推出,它的面世也使得曾经列入.NET开发必备十大工具之一的文档生成工具NDoc的作者Kevin Downs在2006年7月宣告不再投入NDoc Open Source Project的开发。Nunit NUnit 是为 .NET 框架生成的开放源代码单元测试框架。NUnit 使你可以用你喜欢的语言编写测试,从而测试应用程序的特定功能。当你首次编写代码时,单元测试是一种测试代码功能的很好方法,它还提供了一种对应用程序进行回归测试的方法。NUnit 应用程序提供了一个用于编写单元测试的框架,以及一个运行这些测试和查看结果的图形界面。 MyGeneration 作为.NET开发人员,手边有一款代码生成工具必不可少。旧版.NET开发必备十大工具中,曾经有非常著名的CodeSmith,不幸的是现在CodeSmith已经商业化,需要花钱购买;幸运的是我们又有一款免费并开源的代码生成工具选择MyGeneration,它的功能丝毫不亚于CodeSmith,完全基于模板引擎进行代码的生成。Reflector for .NET 相信大名鼎鼎的Reflector for .NET大家都已经用过了,几年前它已经位于.NET开发必备十大工具榜,现在自然也不能例外。它是一个类浏览器和反编译器,可以分析程序集并向你展示它的所有秘密。使用Reflector for .NET可以浏览程序集的类和方法,可以分析由这些类和方法生成的 Microsoft 中间语言 (MSIL),并且可以反编译这些类和方法并查看 C# 或 Visual Basic.NET 中的等价类和方法。经过多年的发展,Reflector for .NET已经发展到了5.1版本,并且提供了相当丰富的插件,利用这些插件我们可以浏览Silverlight程序结构、浏览WPF资源文件、与TestDriven.net集成等。The Regulator The Regulator能够使生成和测试正则表达式变得很容易,它允许你输入一个正则表达式以及一些针对其运行该表达式的输入。这样,在应用程序中实现该正则表达式之前,你便可以了解它将产生什么效果以及它将返回哪些种类的匹配项。另外它还提供了正则表达式库管理功能,在线更新正则表达式库,可以在RegexLib.com上搜索需要的正则表达式。LINQPad 随着在.NET Framework 3.5中对于LINQ的支持,越来越多的开发者在开发中使用了LINQ to SQL,但是编写LINQ to SQL查询似乎又成了一件很麻烦的事情,好在我们还有LINQPad这个工具,用来编写LINQ查询,不仅仅是LINQ to SQL,同时它也支持LINQ to XML、LINQ to Objects,另外LINQPad是完全免费的且无需安装,只要下载它的可执行文件就可以了。NAnt NAnt 是一个基于 .NET 的生成工具,与当前版本的 Visual Studio .NET 不同,它使得为你的项目创建生成过程变得非常容易。当你拥有大量从事单个项目的开发人员时,你不能依赖于从单个用户的座位进行生成。你也不希望必须定期手动生成该项目。你更愿意创建每天晚上运行的自动生成过程。NAnt 使你可以生成解决方案、复制文件、运行 NUnit 测试、发送电子邮件,等等。遗憾的是,NAnt 缺少漂亮的图形界面,但它的确具有可以指定应该在生成过程中完成哪些任务的控制台应用程序和 XML 文件。目前NAnt已经支持.NET Framework 3.5,它的最新版本是0.86 Beta 1。
by 陈少俊
2011.3.23 23:17
vs2008 重新配置工作环境方法
在开始菜单打开:
Microsoft Visual Studio 2008 >> Visual Studio Tools >> Visual Studio 2008命令提示
在窗口中输入:devenv /resetuserdata
运行完成后重新打开VS2008就可以重新设置默认环境
可以根据自己的开发项目选择具体的配置习惯,c# , VC++...
by 陈少俊
2010.8.17 15:49
安装包:点击下载
IIS6.0.rar (10.03 mb)
缺少文件包:点击下载
IIS6全部.rar (10.30 mb)
by 陈少俊
2010.7.23 17:20
/*580*90,创建于2010-7-27*/ var cpro_id = 'u125051';
使用VS 自带的打包工具,制作winform安装项目
开发环境:VS 2008 Access
操作系统:Windows XP
开发语言:C#
项目名称:**管理系统
步骤:
第一步:打开开发环境VS2008,新建项目,选择其他项目类型,再选择"安装项目",输入名称及选择安装路径;
第二步:进入文件系统选项卡,选择应用程序文件夹,在中间的空白区域右键选择"添加文件",添加项目文件(exe,dll);
第三步:添加项目所需文件;这里有两个文件夹需要注意(DataBase和Report),因为DataBase是存储项目数据库,而Report则是存储项目所需的报表文件.rpt,因此呢,在应用程序夹中也需要建同名的文件夹,并且添加所需的文件。效果:
第四步:为了在开始程序菜单中和桌面应用程序中看到安装程序,这里我们就需要为项目创建快捷方式。右键选择可执行文件(PersonFinance.exe),创建快捷方式,进行重命名"**公司**管理系统",将该快捷方式拖放到 '用户的"程序"菜单' 中。重复该步骤将新建的快捷方式添加到 "用户桌面" 文件夹中
最好在用户菜单中建立一个文件夹,存放安装程序
第五步:设置系统必备,右键选择安装项目,进入属性页中,单击"系统必备"按钮,进入系统必备对话框;勾选"创建用于安装系统必备组件的安装程序",在安装系统必备组件列表中,选择
1)、Windows Installer 3.1(必选)
2)、.NET Framework 3.5 (可选)参考最后说明
3)、Crystal Report Basic for Visual Studio2008(x86,x64) (可选) 项目中用到了水晶报表就需要勾选此项
重要一点:勾选"从与我的应用程序相同的位置下载系统必备组件(D)",其实意思就是说你勾选后,生成安装项目时,在你安装项目的路径下,会有你在系统必备组件列表中勾选的组件.(系统自动完成,这一点还不错,不需要你自己去下载组件)
到这里安装包制作差不多完成了一大半 接着来
第六步:卸载程序,因为安装包做好之后不能只有安装程序,还要有卸载程序
首先呢,在"C:\WINDOWS\system32"路径下,找到msiexec.exe 添加到应用程序文件夹中,创建快捷方式,并命名"卸载管理系统"或"Uninstall"
其次呢,选择安装项目的ProductCode
右键选择卸载程序的快捷方式,进入属性,在Arguments选项中 输入/x 及ProductCode; 例如:/x {6931BD71-5C5E-4DA1-A861-14C7D1A78B97}
将卸载程序同时存放到用户的开始菜单的文件夹中(在第四步中新建)
第七步:更改安装程序属性,右键选择安装项目属性,可以设置项目作者及名称,其他属性信息可以根据实际情况进行设置.
第八步:生成安装项目
生成时,会出现些警告:应将“msiexec.exe”排除,原因是其源文件“C:\WINDOWS\system32\msiexec.exe”受到“Windows 系统文件保护”。
两个或多个对象具有相同的目标位置(“[targetdir]\model.dll”)
解决方案:
第一种:都不处理
第二种:第一类警告,可以编写卸载程序
第二种警告:删除相同的文件
安装项目制作完毕.
安装及运行:
直接运行steup.msi 或是setup.exe 会出现
在桌面和开始菜单中也会有相应的安装程序、卸载程序
说明及小结:
1、.net framework 框架是可选的,不一定说你采用的是VS2008开发就必须要使用.net framework 3.5,只要你在程序中没有使用到.net framework 3.5 的特性比如(LINQ),那么你选择框架时,是可以选择2.0的,为什么?因为2.0只有20多MB,而3.5则有200多MB。
更改方式:在安装项目下面有个检测到的依赖项文件,双击里面的Microsoft .net framework,进入了启动条件选择卡,右键选择.net frmaework 在Version中选择你所需的.net framework框架
2、文章中涉及到的名称大家可以根据实际所需进行设置。
3、欢迎拍砖。
博客园链接地址:
http://www.cnblogs.com/chankcheng/articles/1774932.html
转载请注明地址,谢谢!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/WTPMCheng/archive/2010/07/10/5725741.aspx
by 陈少俊
2010.1.19 15:50
您是否遇到过无法安装和卸载Microsoft Expression Studio 相关程序的问题呢? 其实很简单 运行安装程序是如果报 字符太长或太短 的错误请将 您的系统语言改为 英语(美国) 再执行相关 安装或卸载操作。 之后再改回来就OK了。试试吧,一定成功。 记得 评论哦。O(∩_∩)O~
by 陈少俊
2009.12.11 22:07
首先建立/App_Browsers/Form.broswer文件,其内容为: <browsers> <browser refID="Default"> <controlAdapters> <adapter controlType="System.Web.UI.HtmlControls.HtmlForm" adapterType="FormRewriterControlAdapter" /> </controlAdapters> </browser> </browsers> 再建立FormRewriterControlAdapter类: public class FormRewriterControlAdapter : System.Web.UI.Adapters.ControlAdapter { protected override void Render(HtmlTextWriter writer) { if (writer is System.Web.UI.Html32TextWriter) { writer = new FormFixerHtml32TextWriter(writer.InnerWriter); } else { writer = new FormFixerHtmlTextWriter(writer.InnerWriter); } base.Render(writer); } } #region FormFixerHtml32TextWriter internal class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter { private string _url; // 假的URL internal FormFixerHtml32TextWriter(TextWriter writer) : base(writer) { _url = HttpContext.Current.Request.RawUrl; } public override void WriteAttribute(string name, string value, bool encode) { // 如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL if (_url != null && string.Compare(name, "action", true) == 0) { value = _url; } base.WriteAttribute(name, value, encode); } } #endregion #region FormFixerHtmlTextWriter internal class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter { private string _url; internal FormFixerHtmlTextWriter(TextWriter writer) : base(writer) { _url = HttpContext.Current.Request.RawUrl; } public override void WriteAttribute(string name, string value, bool encode) { if (_url != null && string.Compare(name, "action", true) == 0) { value = _url; } base.WriteAttribute(name, value, encode); } } #endregion
by 陈少俊
2009.12.11 22:06
JS: __doPostBack('btnSearch',''); HTML: <input type="button" id="btnSearch" runat="server" style="visibility:hidden; position: absolute;" onserverclick="btnSearch_Click" /> 如果加入Ajax功能: <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> //HTML代码...... </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="btnSearch" EventName="ServerClick" /> </Triggers> </asp:UpdatePanel> 可以处理Ajax提示效果: <script language="javascript" type="text/javascript"> <!-- var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_initializeRequest(InitializeRequest); prm.add_endRequest(EndRequest); var postBackElement; function InitializeRequest(sender, args) { postBackElement = args.get_postBackElement(); } function EndRequest(sender, args) { if( postBackElement.id == "btnSearch") { $("divWait").style.visibility = "hidden"; $("btnSave").disabled = ""; $("btnHidden").disabled = ""; } } // --> </script>
by 陈少俊
2009.12.11 21:48
代码段1 ========================= System.Drawing.Image image = System.Drawing.Image.FromFile(originalFilename); System.Drawing.Size size = GetImageSize(image.Width, image.Height, information.MaximumDimension); System.Drawing.Image bitmap = new System.Drawing.Bitmap(size.Width, size.Height); System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap); graphics.IntERPolationMode = System.Drawing.Drawing2D.InterpolationMode.High; graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphics.Clear(information.BackgroundColor); graphics.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width, image.Height), System.Drawing.GraphicsUnit.Pixel); graphics.Dispose(); 代码段2 ============================ //原始图片名称 string originalFilename = "c:\\222.jpg"; //生成的高质量图片名称 string strGoodFile = "c:\\222-small-good.jpg"; //生成的低质量图片名称 string strBadFile = "c:\\222-small-bad.jpg"; //缩小的倍数 int iScale = 3; //从文件取得图片对象 System.Drawing.Image image = System.Drawing.Image.FromFile(originalFilename); //取得图片大小 System.Drawing.Size size = new Size(image.Width / iScale , image.Height / iScale); //新建一个bmp图片 System.Drawing.Image bitmap = new System.Drawing.Bitmap(size.Width,size.Height); //新建一个画板 System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap); //设置高质量插值法 g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量,低速度呈现平滑程度 g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; //清空一下画布 g.Clear(Color.Blue); //在指定位置画图 g.DrawImage(image, new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), new System.Drawing.Rectangle(0, 0, image.Width,image.Height), System.Drawing.GraphicsUnit.Pixel); //保存高清晰度的缩略图 bitmap.Save(strGoodFile, System.Drawing.Imaging.ImageFormat.Jpeg); //取得原图像的普通缩略图 System.Drawing.Image img = image.GetThumbnailImage(image.Width / iScale, image.Height / iScale, null, IntPtr.Zero); //保存普通缩略图 img.Save(strBadFile, System.Drawing.Imaging.ImageFormat.Jpeg); g.Dispose(); MessageBox.Show("生成完毕"); 俺自己写的一段原图+缩略图代码 =============================== using System; using System.Collections; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Drawing.Imaging; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace BSCRM.Shangpin { /// <summary> /// Shangpin_IMG 的摘要说明。 /// </summary> public class Shangpin_IMG : System.Web.UI.Page { string ImagePath = ConfigurationSettings.AppSettings["ImagePath"]+"\\"; bool error; string src; int height,width; private void Page_Load(object sender, System.EventArgs e) { // 在此处放置用户代码以初始化页面 height=width=0; if(Request["h"]!=null&&Request["h"].ToString().Trim()!="") { height=int.Parse(Request["h"].ToString().Trim()); } if(Request["w"]!=null&&Request["h"].ToString().Trim()!="") { width=int.Parse(Request["w"].ToString().Trim()); } if(Request["src"]!=null) { src = ImagePath+Request["src"].ToString(); try { System.Drawing.Image img = System.Drawing.Image.FromFile(src); if(height>0||width>0) { if(height==0) height=img.Height; if(width==0) width=img.Width; System.Drawing.Image img2 = img.GetThumbnailImage(width,height,null,IntPtr.Zero); img2.Save(Response.OutputStream,img.RawFormat); img2.Dispose(); } else { img.Save(Response.OutputStream,img.RawFormat); } img.Dispose(); } catch { error = true; } } else { error = true; } if(error) { Response.StatusCode = 404; Response.Write("<html><head><title>Object Not Found</title></head><body><h1>HTTP/1.1 404 Object Not Found</h1></body></html>"); } } #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) { // // CODEGEN: 该调用是 ASP.net Web 窗体设计器所必需的。 // InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); } #endregion } }
by 陈少俊
2009.12.11 21:46
1.首先開啟「命令窗口」,並切換目錄到 cd C:\Windows\Microsoft.Net\Framework\ 2.在命令行執行 "net stop w3svc" 終止 w3svc 服務 3.切換到下层目錄 cd C:\Windows\Microsoft.Net\Framework\v2.0.50727\ 4.執行 "aspnet_regiis.exe -ua" 卸载 .Net 5.重新安裝 .Net 到 IIS 中 执行 "aspnet_regiis.exe -i" 6.切換目錄到 cd C:\Windows\Microsoft.Net\Framework\ 7.重新启動 w3svc 执行 "net start w3svc".
by 陈少俊
2009.12.11 21:45
依次点击“开始”-“运行”。 2、在“运行”栏内输入 “C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i ”(不含引号),然后点“确定”按钮。 3、出现的cmd窗口中显示“开始安装ASP.NET XXX”等内容,等待这个窗口自动关闭。 ------------------------------------ 装了VS2005再装IIS,结果出了些小问题 访问IIS元数据库失败 思考可能是次序出了问题,解决 1、打开CMD,进入 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 2、输入 aspnet_regiis.exe -i 稍等片刻,注册成功就解决问题了。 接着还会出现“未能创建 Mutex”的问题 解决方法: 1、先关闭你的VS2005。 2、打开 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 找到你刚才调试的程序的名字的目录删除它。 3、关闭IIS服务器,重开一次。 4、用IE浏览一下你的程序,问题解决。
by 陈少俊
2009.12.11 21:41
做课程设计时,很多学生都遇到这个问题。把解决方法写在这儿,供参考。 刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。 (provider: 命名管道提供程序, error: 40 - 无法打开到 SQL Server 的连接) "搜MSDN,上面有一片机器翻译的文章,是在让人难以明白,现在总结如下:明白了SQL Server是个网络数据库就可迎刃而解了,简单的分为下面的集中情况。 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 安装不同而不同。 在使用.NET开发进行时,会遇到使用连接字符串连接SQL Server 2005数据库使用机器名称和localhost都能连接,但是使用IP地址却不能连接的问题,解决的办法是在SQL Server实例上启用本地和远程连接,并且在选择协议的时候使用TCP/IP和命名管道服务即可解决。