05 2011 档案
摘要:为一个ASMX服务实现一个WCF客户端WCF客户端可以调用任何基于标准的服务而不用考虑目标宿主环境。在.NET Framework 1.1 上创建的ASMX网络服务是完全兼容的。由WS-I 1.1基本概况定义的标准确保它们可以被WCF调用。支持工具就像调用一个WCF服务,你可以使用添加服务引用(ASR)或者Svcutil.exe来创建代理类和配置文件来调用ASMX服务操作。在这些被创建以后,客户端通过实例化代理调用方法来与ASMX网络服务通信。同样的,你可以使用添加网络服务引用(AWR)或者wsdl.exe 来生成代理类和配置文件。然后在实例被创建以后,客户端在代理上调用方法来和服务通信。 对
阅读全文
摘要:在IIS中寄宿服务一个WCF服务可以在操作系统中运行的任何托管进程中寄宿。服务本身一般并不知道或者关心它是怎么被寄宿的,尽管它可以通过丰富的APIs来找出来。它可以寄宿到一个不被注意的随机器初始化时启动随机器关闭时关掉的Windows 服务上,或者在一个最小化到Windows系统托盘的客户端应用程序。最普通的用法,就是在IIS里托管一个WCF服务。讨论IIS非常合适作为宿主。IIS是Windows的一部分而且有一个重要的已经发布的关于管理,安全和开发应用的知识库。IIS是可扩展的,可信赖的而且是非常安全的。所以IIS有非常出色的条件来作为宿主。基于IIS的ASMX是WCF之前的最广泛适用的用来
阅读全文
摘要:完成一个WCF服务客户端WCF为客户端提供了丰富的API来使用当需要和服务通信时。通过Service.ServiceModel实现的API处理将.NET类型转换成XML然后从客户端向服务端发送消息。你可以直接用API编程,或者你可以使用工具生成一个代理类和配置文件。在这一部分,我们将首先说明如何使用代码直接调用服务,然后我们将使用工具实现这个过程。前一种方法使用较少的代码并不使用配置文件。后一种方式有更少的依赖性而且在调用时有更好的微控性。有很多种情况当每个解决方案是最好的选择时。完全使用代码写一个WCF客户端就像一个服务终结点必须定义一个WCF的ABCs在网络上暴露服务接口,一个客户端必须知
阅读全文
摘要:暴露元数据交换终结点WCF中的元数据是精确描述如何与服务通信的消息。客户端可以向一个运行的服务请求元数据来了解它们要求的终结点和消息格式。在设计时,客户端发送由WS-MetadataExchange 标准定义的消息并接收返回的WSDL。WSDL可以被客户端用来定义一个将要用来在运行时与服务通信的代理类和配置文件。图片1.4显示了这个交流过程。 默认情况下,WCF服务不暴露MEX终结点。这意味着没有人能查询到这个服务并知晓如何与它通信。不知道地址,绑定和契约,与服务通信是非常困难的,除非服务被记录到注册表中。幸运的是,WCF让暴露MEX终结点变得非常容易以至于客户端可以与服务端顺畅的通信。MEX
阅读全文
摘要:服务控制文件web.config 或是 app.config 依赖于服务是如何被寄宿的,它们必须包含一个<system.serviceModel>节点。在这个节点下,服务,绑定,行为,客户端,诊断,扩展,寄宿环境和COM+互操作都可以被特殊设置。最低限度必须有一个<services>节点用来包含终结点,也至少有一个非基础架构的<endpoint>节点在<services>节点下面。在<endpoint>节点内,ABCs会被定义在每一个终结点上。 地址属性定义客户端将要把消息发送到终结点的URI。例如,如果一个服务使用基于HTTP协议的
阅读全文
摘要:WCF为在配置文件中定义服务属性提供了丰富的支持。你仍然需要为你将要在服务中暴露的特性或者算法编码,但是终结点地址,绑定和行为可以从代码中移动到配置文件中。 通过配置文件定义终结点和行为比通过代码更具扩展性。 举例说明,假设实现一个终结点并通过HTTP来通信。在列表1.1中,这是通过调用AddServiceEndpoint以及BasicHttpBinding 完成的。现在假设你将把绑定改为使用WSHttpBinding,通过在消息层面的处理将比在传输层面的处理带来更好的安全性能。在那种情况下,你需要改代码并需要重新编译它们。通过把绑定部分从代码移到配置文件中,可以让我们不必重新编译代码就实现改
阅读全文
摘要:完成一个WCF服务,你要完成一个.NET 类然后使用System.ServiceModel 属性来修饰这个类。System.ServiceModel 命名空间与.NET 3.0 一起安装而且包含了大多数WCF实现。当代码编译时,CLR(公共语言运行库)解释这些属性,使用运行时代码取代它们。对于.NET来说属性并不是新事物; 在.NET 1.0 时它们已经存在了。WCF,就像.NET 1.0,1.1和2.0 中的ASMX,当写服务时使用属性来提高我们的生产力。 列表1.1 中显示了寄宿在控制台应用程序的WCF服务的完整代码。在这个例子中,我们做了以下工作。 定义契约。写一个.NET 类做一些有用
阅读全文
摘要:所以客户端代码可以简单的调用一个终结点。代理接口不必与服务签名保持一致,但是代理需要确保传输给服务的消息就是服务契约所描述的。app.config 文件包含了特殊绑定。实现一个WCF服务这一部分描述怎么样使用WCF实现一个简单的服务。最简单的方式,我们将使用HTTP 协议,我们将使用文本形式的XML文档。对于安全,我们假设它已经在应用程序中进行了相关处理。我们使用了同步请求-回复方式而且我们的服务只支持一个操作,就是接受输入字符串返回double 型输出。在接下来的章节中,我们会改变所有这些假定,但是目前为止,我们需要排除不必要的复杂性。仅仅是ABCs定义一个服务终结点,要记住ABCs:地址,
阅读全文
摘要:微软通信基础是关于服务的。主要是指创建,寄宿,使用以及安全性。WCF是基于标准和互通性的。可以提高开发人员的生产力。简短的说,WCF就是让每一个专业软件开发人员能够使用分布式计算服务。 在这一章,我们主要介绍一些了解WCF服务如何工作的基础理论。我们主要集中介绍最通用的特性。通过接下来的内容和例子,你将可以在本地或是网间创建并使用WCF服务。 为什么说WCF重要? 在深入讨论服务是怎么样的时候,理解为什么更重要。所以,为什么说WCF重要?很简单-因为服务是整个分布式网络的核心,而WCF是微软平台上部署和使用服务的最简单的方式。通过利用WCF,开发人员可以专注于他们的应用而不是在通信协议上。这是
阅读全文
摘要:服务有两种方案发布自己的元数据。一种是基于HTTP-GET协议提供元数据,另一种是使用专门的元数据交换终结点的方式。WCF能够为服务自动提供基于HTTP-GET的元数据,但需要显式地添加服务行为(Behavior)以支持这一功能。基于HTTP-GET协议提供元数据:如下:所有引用了定制<behavior>配置节的托管服务都支持基于HTTP-GET协议实现元数据交换。<behaviors> <serviceBehaviors> <behavior name=""> <serviceMetadata httpGetEnabl
阅读全文
摘要:<?xml version="1.0" encoding="utf-8" ?><configuration> <system.ServiceModel> <!-- services 元素包含应用中驻留的所有service的配置要求 --> <services> <!-- 每个服务的配置 属性说明: name - 指定这个service配置是针对的那个服务,为一个实现了某些Contract的服务类的完全限定名 (名称空间.类型名),ServiceHost载入一个服务后,会到配置文件中的<
阅读全文
摘要:C# 3.0提供以下新特性: ·隐式类型本地变量 ·匿名变量 ·扩展方法 ·对象和集合初始化器 ·Lambda表达式 ·查询表达式 ·自动属性一、隐式类型局部变量 使用var关键字来定义隐式类型的局部变量,系统根据初始化赋值时的值来推断变量的类型,故该类型变量要在声明时就进行初始化,如var i=1;同时,var定义的变量在进行初始化赋值以后,就不可以在将其他类型的值赋给给变量,也就说,C#里面的var不像javascript里面的var是弱类型,而是强类型的。二、匿名变量 C#3.0允许创建一个类的实例,而不需要先写这个类
阅读全文
摘要:大学扩招后,各类大学或学院如牛毛般兴起。随之而产生的现象是大学生源质量的下降,而优质大学老师也是僧多粥少,必然使大量水平尚不达标的教师混入各类院校,使上课的精彩程度有所降低。于是,逃课的学生们也越来越多... 作为众多大学生中一员的本文作者,也混迹在某所二流学校里。 某天上课铃响后,亲爱的全哥拿着《管理信息系统》一书讲课到一半,眼睛一描台下寥寥无几昏昏欲睡的几个“好”学生,脸上泛起阴沉的笑容,”我们来点名吧!没到的举手!“这话乍一出口,台下便一片大乱,美女班长急匆匆拿起手机,快速按着键盘编辑短信催逃课的同学来上课。 本文的作者作为当时在场的一员,目睹当今大学课堂之怪状,脑中立即浮现出本程序的雏
阅读全文
摘要:做一个小软件,类似于资源管理器的操作形式,剪切,复制,粘贴自然是少不了的了,在MSDN中找来好久,总算是明白过来了,代码如下: /// <summary> /// 复制或剪切文件至剪贴板(方法) /// </summary> /// <param name="files">需要添加到剪切板的文件路径数组</param> /// <param name="cut">是否剪切true为剪切,false为复制</param> public static void CopyToClipboa
阅读全文
摘要:using System;using System.Collections.Generic;using System.Text;using System.IO;//namespace DESFileSmart{ public class DESFileSmartClass { /// <summary> /// 加/解密文件算法 /// </summary> /// <param name="inFile"></param> /// <param name="outFile"></para
阅读全文
摘要:BackgroundWorker 组件用来执行诸如数据库事务、文件下载等耗时的异步操作。开始在应用程序中添加一个BackgroundWorker实例,如果用的是VS,可以从工具上直接拖到应用程序:BackgroundWorker backgroundWorker1 = new BackgroundWorker();为了开始在后台操作,必须调用BackgroundWorker的RunWorkerAsync()方法,当调用此方时,BackgroundWorker 通过触发DoWork 事件,开始执行后台操作,DoWork 事件的代码是在另一个线程里执行的。代码如下:代码一:BackgroundWo
阅读全文
摘要:首先引用 using System.Text.RegularExpressions;给TextBox添加KeyPress事件,代码如下:private void textBox1_KeyPress(object sender, KeyPressEventArgs e){if ((Convert.ToInt32(e.KeyChar) == 8)) {e.Handled = false;}else { Regex numRegex = new Regex(@"^(-?[0-9]*[.]*[0-9]*)$"); Match Result = numRegex.Match(Conv
阅读全文