随笔分类 -  个人编程经验总结

摘要:如果遇到如题所示的问题,检查并修改如下几个地方:1. 客户端与服务端地址是否一致;如果服务器使用net.tcp://127.0.0.1:8888,而客户端使用net.tcp://192.168.1.13:8888(假如我们的WCF服务端部署在192.168.1.13上),这样是不行的,服务器端的地址也必须使用net.tcp://192.168.1.13:8888。2. 服务端是否开启了防火墙,从而导致端口无法被客户端机器访问,这时你可以使用telnet命令(telnet ip port)看看是否能打开指定IP的指定端口,如果不行,那最直接的办法就是先关闭防火墙,如果你即要打开防火墙,还要让端口 阅读全文
posted @ 2011-07-14 14:40 [曾恩] 阅读(19590) 评论(2) 推荐(0) 编辑
摘要:使用WCF传输大数据时,我们都会碰到如题中出现的错误信息,出现这个问题是因为WCF本身的安全机制导致的,限制了客户端与服务器资源传输大小,那我们如何还解决这个问题呢?针对这个问题,我们要分发送、接受两个方面来解决。发送大数据:在WCF服务端解决 NetTcpBinding binding = new NetTcpBinding(); binding.MaxReceivedMessageSize= 2147483647(更改这个数字) ;接受大数据:在WCF客户端解决 NetTcpBinding binding = new NetTcpBinding(); binding.ReaderQuota 阅读全文
posted @ 2011-07-11 13:25 [曾恩] 阅读(6099) 评论(1) 推荐(0) 编辑
摘要:使用.NET做分布式,我们首先会想到WebService、Remoting、WCF,这里我以WCF为例,简单讲解下如何使用代理来访问WCF服务(不添加web引用、不使用管道模式【因为管道模式依赖于WCF的契约】)。1.生成代理类1)打开VS命令行工具,使用命令:svcutil 契约的dll完整路径2)它会在dll所在目录下生成几个文件,其中包含一个wsdl文件和一个xsd文件 3)使用命令:svcutil *.wsdl *.xsd4)这时会在dll所在目录生成一个.cs文件,这个就是我们需要的代理类了5)现在客户端调用WCF服务我们就可以使用这个代理类来完成了,具体如下:IService se 阅读全文
posted @ 2011-07-01 10:09 [曾恩] 阅读(2918) 评论(0) 推荐(1) 编辑
摘要:标题有点太长了,直奔主题!生产服务器环境:系统:windows server 2008 R2(x64)web服务器:IIS7应用程序:asp.net4.0、mvc2开发服务器环境:系统:windows7、windows server 2003 sp2(x32)web服务器:IIS7、IIS6应用程序:asp.net4.0、mvc2如果想让32位机器上开发的应用程序完美运行在64位机器的IIS7上,只需更改一处地方,见下图:1. 单击“应用程序池”2. 找到站点对应的应用程序池,右键--高级设置3. 将“启用32位应用程序”设置为“True”Ps:当然,如果你的机器是32位的,就算是IIS7,也 阅读全文
posted @ 2011-06-27 16:13 [曾恩] 阅读(1742) 评论(0) 推荐(0) 编辑
摘要:在使用NHibernate时遇到如题中所描述的状况时,将xml文件中字段类型修改为StringClob即可。e.g.<property name="Description" type="StringClob" column="Description" not-null="true" />在mapping文件中text类型字段默认为 type="System.String" 阅读全文
posted @ 2011-06-01 13:41 [曾恩] 阅读(779) 评论(0) 推荐(0) 编辑
摘要:通常会为了开发方便、或者屏蔽掉一些恶意网站,我们会在hosts(c:\windows\system32\drivers\etc\hosts)文件中进行相应的域名指向,例:在上图中,我们可以看到,将www.ywec.com指向到了127.0.0.1,在命令行下ping一下该域名,我们发现它已经被指向到了127.0.0.1,有时我们做了如上述所示操作后,发现域名仍然是指向原IP,这是怎么回事呢?一般情况下会有如下几种情况1.该文件保存时未使用ansi编码进行保存,解决办法:更改文件编码为ansi进行保存2.启用了DNS Client服务(该服务为DNS解析的缓存服务)解决办法:将该服务停用;如果该 阅读全文
posted @ 2011-04-30 09:47 [曾恩] 阅读(13102) 评论(4) 推荐(2) 编辑
摘要:MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下:注:研究成果基于Windows平台MongoDB在本机安装部署好后1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local。local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表2. 输入命令:use admin,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户 阅读全文
posted @ 2011-04-23 16:31 [曾恩] 阅读(117071) 评论(13) 推荐(7) 编辑
摘要:IndexReader删除IndexReader.DeleteDocument(int docNum)——根据Document的docId删除单个DocumentIndexReader.DeleteDocuments(Term term)——根据Term来删除单个或多个Document使用IndexReader进行Document删除操作时,文档并不会立即被删除,而是把这个删除动作缓存起来,直到调用IndexReader.Close()时,删除操作才会被真正执行。注:使用IndexReader进行删除时,必须关闭所有已经打开的IndexWriter;当使用当前的IndexReader进行搜索时 阅读全文
posted @ 2011-04-18 11:28 [曾恩] 阅读(3688) 评论(0) 推荐(1) 编辑
摘要:int? page; //指示该值可以为nullint pageIndex = page ?? 1; //当page != null时,pageIndex = page;当page == null时,pageIndex = 1; 阅读全文
posted @ 2011-04-13 14:25 [曾恩] 阅读(268) 评论(0) 推荐(0) 编辑
摘要:Override:是重载父类中的方法,其方法在父类中必须是Abstract或是Virtul的,子类中重载方法返回值类型必须与父类一致。New:是给子类新增加了一个函数,可以说除了函数名字相同以外,它跟基类里面的这个同名函数没有任何关系。当使用子类的类型来调用的时候,它会运行子类中的函数,而如果类型是基类的话,被隐藏的基类函数就会站到前台来。 阅读全文
posted @ 2011-03-30 16:36 [曾恩] 阅读(229) 评论(0) 推荐(0) 编辑
摘要:readonly:可以在字段上使用的修饰符,当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。可以使用如下方法赋值:View Code // cs_readonly_keyword.cs// Readonly fieldsusing System;public class ReadOnlyTest{ class SampleClass { public int x; // Initialize a readonly field public readonly int y = 25; public readonly int z 阅读全文
posted @ 2011-03-29 10:52 [曾恩] 阅读(323) 评论(0) 推荐(0) 编辑
摘要:params:指定在参数数目可变处采用参数的方法参数;它后面不允许任何其它参数,并且只允许有一个params参数。params// cs_params.csusing System;public class MyClass { public static void UseParams(params int[] list) { for (int i = 0 ; i < list.Length; i++) { Console.WriteLine(list[i]); } Console.WriteLine(); } public static void UseParams2(params ob 阅读全文
posted @ 2011-03-29 10:03 [曾恩] 阅读(287) 评论(0) 推荐(0) 编辑
摘要:在NHibernate中使用Guid作为主键需要注意几点:1. 数据库中Guid类型为uniqueidentifier,同时必须给定默认值。2. 生成的实体类中类型为System.Guid3. 生成的Mapping文件中id对应的class为guid<注意大小写>,id对应的class还有几种不同类型,分别代表不一样的意义,自己Google一下。4. 使用ISession.Save()后同时还要使用ISession.Flush()<否则数据无法保存进数据库>,至于Flush方法作用,自己Google一下。网站中同时使用NHibernate和Log4net1. NHibe 阅读全文
posted @ 2011-03-23 17:56 [曾恩] 阅读(2460) 评论(3) 推荐(0) 编辑
摘要:sealed修饰符:1.密封类,使得该类不能被继承2.sealed修饰符不能与abstract修饰符一起使用,因为abstract修饰符就是指定某个类为基类用来被继承的。abstract修饰符:1.可以用来修饰类、方法、属性等2.在类声明中使用abstract修饰符,该类只能被用作基类,且不能被实例化。3.抽象类中可以包含抽象方法和抽象访问器。4.标记为抽象或包含在抽象类中的成员必须通过该抽象类的派生类来实现5.可以在派生类中使用override来重写抽象方法或抽象属性5.只允许在抽象类中使用抽象方法6.抽象方法不能与static、virtual修饰符一起使用7.抽象方法没有方法体virtua 阅读全文
posted @ 2011-03-14 16:17 [曾恩] 阅读(433) 评论(0) 推荐(0) 编辑
摘要:Expression属于System.Linq.Expression命名空间下。ask:Expression是什么?answer:Expression是表达式树ask:表达式树用来干什么?answer:表达式树提供一个将可执行代码转换成数据结构的方法,我们可以把它理解为一种数据结构。ask:可执行代码指什么?answer:可执行代码其实就是指C#代码,例:lambda表达式是可执行代码、LINQ查询表达式也是可执行代码ask:表达式树价值体现在什么地方?answer:在LINQ中,我们使用Linq查询表达式来从数据库中获取数据,很显示,数据库并不认识LINQ语法,它只认识SQL语句,这时表达式 阅读全文
posted @ 2011-02-07 15:47 [曾恩] 阅读(633) 评论(0) 推荐(0) 编辑
摘要:委托:是一种定义方法签名的类型。当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。您可以通过委托实例调用方法。上述为官方说法,理解起来比较难,举个生活中的例子:某人有三子,让他们各自带一样东西出门,并带回一头猎物。上面一句话可以理解为父亲对儿子的委托:猎物 办法(工具 某工具)--delegate 猎物(返回值) 带回猎物(委托名)(工具(参数类型) x)--delegate int GetValue(int i)三个人执行委托的方法各不相同兔子 打猎(工具 弓)-public static int GetValue1(int i){ return i; }野鸡 买(工具 钱) 阅读全文
posted @ 2011-02-06 19:48 [曾恩] 阅读(6972) 评论(2) 推荐(4) 编辑
摘要:某个文本文件中存储了60W条记录,以\r\n作为分隔符,现在需要从文本中一次性取出所有值并存放到一个string[]数组中。StreamReader sr = new StreamReader(strFilePath, System.Text.UnicodeEncoding.GetEncoding("utf-8"));string strContent = sr.ReadToEnd();string[] strArr = strContent.Split("\r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);以上方式非常不建议 阅读全文
posted @ 2010-12-07 12:30 [曾恩] 阅读(3129) 评论(1) 推荐(0) 编辑
摘要:如果正在开发的网站在IIS中自定义了域名,有时会出现无法调试的情况,提示错误:无法在WEB服务器上启动调试,与WEB服务器通信时出现身份验证错误,遇到这个情况不要慌,如何解决呢?请看下解。首先,得检查一些必要的环节是否正确。1.IIS中是否设置了集成WINDOWS身份验证2.配置文件中是否设置网站为允许调试上面这两点一般都不用检查,导致此问题发生的真正原因在于 “启用了环回检查”,怎么禁用环回检查呢?步骤如下:1. 打开注册表编辑器(单击 开始 , 单击 运行 , 类型 regedit然后单击 确定 )。 2. 中注册表编辑器, 找到并单击以下注册表项: HKEY_LOCAL_MACHINE\ 阅读全文
posted @ 2010-11-05 21:58 [曾恩] 阅读(237) 评论(0) 推荐(0) 编辑
摘要:网站中使用SESSION或COOKIE来进行用户身份验证是必要的事情,常用的做法便是写一个基类,所有需要用到身份验证的页面统统继承这个页面,由于之前使用的是COOKIE,这次加入了SESSION,两者一起来进行判断,出问题了,什么问题呢?听我慢慢道来!首先跟大家讲讲关于SESSION与COOKIE的相关知识,如果对这一块了解比较透彻的人可以略过此段。SESSION的存储--存储在服务器端:(SESSION的三种存储模式)1.存储在网站的进程中(大家知道asp.net应用程序网站运行时都会开启一个W3WP.exe进程,SESSION的生命周期便与此进程共存亡)2.存储在STATE SERVER进 阅读全文
posted @ 2010-11-01 14:49 [曾恩] 阅读(2139) 评论(1) 推荐(0) 编辑
摘要:今天,重启IIS7时突然报错 “IIS 服务或万维网发布服务,或者依赖这 服务可能在启动期间发生错误或者已禁用”, 查遍了所有与IIS有关的服务,发现均已启动,没办法,1. 重装IIS,仍然存在同样的错误,2. 这时去查看了一下WINDOWS系统日志,好家伙,报错了,错误提示:与 Net.Tcp Listener Adapter 服务相依的 Net.Tcp Port Sharing Service 服务因下列错误而无法启动: 无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动。3. 赶紧跑去看“Net.Tcp Port Sharing Service”此服务,居然设为禁止启动,难怪,好 阅读全文
posted @ 2010-10-29 16:23 [曾恩] 阅读(7557) 评论(2) 推荐(0) 编辑