摘要: 在做项目时利用Wcf直接返回一个DataTable在客户端解析数据,遇到一个问题,客户端可以请求过去,服务端也进行了返回,可是客户端却接收不到返回的数据,并且报错误:接收对 http://*.*.*.*的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。有关详细信息,请参见服务器日志。百度了众多方案都无效,最后用Bing在一个很不起眼的地方搜索到一个解决方案,在服务端返回DataTable时设置TableName即可,只要不为空就可以.测试通过! 阅读全文
posted @ 2013-04-10 15:23 -------- 阅读(1965) 评论(7) 推荐(3) 编辑
摘要: ---恢复内容开始------恢复内容结束--- 阅读全文
posted @ 2013-04-03 16:25 -------- 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 首先不得不说之前对Socket的理解有很大的误区,在这里特别更正一下.SOCKET是Java(C#)实现数据通信的API。这个词语起源于BSD相关的UNIX,程序开发中用于process之间通信的API名称。TCP/UDP是OSI模型的第四层中定义的两种通信方式。也就是说,SOCKET是API,而TCP/UPD是通信协议,两种根本不同的东西。 语言表达的例子:用Socket实现TCP(或者UDP)通信。 (相反,TCP或者UDP通信也可以不使用SOCKET实现)也就是说Socket是TCP、UDP的实现方式,用SOCKET编程可以实现TCP、UDP的通信附上Socket调用方法流程:服务器设置 阅读全文
posted @ 2013-03-10 15:46 -------- 阅读(1284) 评论(0) 推荐(2) 编辑
摘要: 一、浏览器请求页面的简单流程当浏览器请求静态页面时,会发送请求给服务器软件,服务器软件直接去找对应的静态页面,并返回给浏览器。当浏览器请求动态页面时,服务器软件收到请求,发现处理不了.aspx文件,就去映射表当中根据后缀名找对应的处理程序(aspnet_isapi.dll),这个处理程序实现了服务器软件提供的接口,即服务器软件通过接口调用了这个处理程序当中的方法。aspnet_isapi.dll会将请求转交给.Net Framework,由它处理动态页面,创建页面对象,生成相应报文,响应给浏览器。当服务器接收到浏览器的动态页面请求时,去网站的程序集中找对应的类,通过反射的方式创建类的对象,并运 阅读全文
posted @ 2012-03-17 19:21 -------- 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 读取XML文档内信息的操作与写操作类似,首先要加载一个XML文件成为一个可操纵的对象。假设我们有个XML文件叫student.xml。1 XDocument xDoc = XDocument.Load("students.xml");之后要获取根节点1 XElement xeRoot = xDoc.Root;如果我们想取得某一节点的话:1 //根据标签名获取某一个节点2 XElement xe1 = xeRoot.Element("标签名"); 3 //输出节点名4 Console.WriteLine(xe1.Name); 5 //输出节点下所有元素的值 阅读全文
posted @ 2012-03-17 19:16 -------- 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 前几天讲到了子窗体给父窗体传值的问题,在此总结一下。这里就不讨论全局变量和静态变量之类的高耦合方式了,只讨论利用接口传父窗口指针和使用委托这两种耦合度相对较低的方式,具体怎么用看需求,没有哪个好哪个不好。在这个例子中,我们有父窗体Form1和子窗体Form2,里面各有一个的文本框txt1和txt2,各有一个按钮。一、接口法 首先要新建一个.cs文件写一个接口,内容如下:1 public interface ITxt 2 { 3 void setTxt(string txt); 4 }复制代码然后让主窗体Form1实现这个接口,1 void ITxt.setTxt(string txt)... 阅读全文
posted @ 2012-03-17 19:16 -------- 阅读(621) 评论(0) 推荐(0) 编辑
摘要: 1 MailMessage mail = new MailMessage(); 2 mail.From = new MailAddress("发件人邮箱"); 3 mail.To.Add(new MailAddress("收件人邮箱")); 4 mail.Subject = "标题字符串"; 5 mail.Body = "内容字符串"; 6 mail.Attachments.Add(new Attachment(@"附件地址")); 7 SmtpClient sc = new SmtpClien 阅读全文
posted @ 2012-03-17 19:16 -------- 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 1 //计算字符串MD5 2 public static string GetStringMd5(string txt) 3 { 4 MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); 5 string result = ""; 6 byte[] bytes = Encoding.ASCII.GetBytes(txt); 7 byte[] cryptBytes = md5.ComputeHash(bytes); 8 foreach (byte item in cryp... 阅读全文
posted @ 2012-03-17 19:16 -------- 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 要把一个复杂对象弄成一个文件发给别人的话,自己定义存储格式要费很大的周折,不过微软早就帮咱们把算法写好了,只要套用一个函数就OK了!越来越觉得C#便捷了!序列化: 1 //1.序列化: 2 //给所有要序列化的类、父类、成员的类添加[Serializable]特性 3 //创建写的文件流 4 FileStream fs = File.Create("person.bin"); 5 using (fs) 6 { 7 //创建一个序列化器 8 BinaryFormatter bf = new BinaryFormatter(); 9 //执行序列化10 ... 阅读全文
posted @ 2012-03-17 19:15 -------- 阅读(383) 评论(0) 推荐(0) 编辑
摘要: 事件,就是封装后的委托,如果把委托看成字段,那事件就是属性了,其实就是把委托做了个阉割而已,阉割后的委托只能+=和-=。这次要实现的效果是,自己定义一个控件,上面有两个textbox,分别叫txtLoginId和txtLoginPwd,还有个叫btmLogin的按钮,控件的用途是让用户输入的用户名和密码,然后点登陆。如果用户名和密码正确,登陆成功,则两个textbox变为绿色,失败则变为红色。首先建立一个用户自定义控件,把零部件拖进去。然后建立一个客户程序(主程序)的窗口Form1,把刚定义好的这个自定义控件拖进去。我们给验证控件的文件起名叫UcLogin.cs。由于程序是在点下按钮时触发的, 阅读全文
posted @ 2012-03-17 19:15 -------- 阅读(207) 评论(0) 推荐(0) 编辑