文档库 最新最全的文档下载
当前位置:文档库 › Wcf微软官方的解释

Wcf微软官方的解释

Wcf微软官方的解释
Wcf微软官方的解释

Wcf微软官方的解释:

根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。以通信(Communiation)范围而论,它可以跨进程、跨机器、跨子网、企业网乃至于Internet;以宿主程序而论,可以以https://www.wendangku.net/doc/4013443398.html,,EXE,WPF,Windows Forms,NT Service,COM+作为宿主(Host)。WCF可以支持的协议包括TCP,HTTP,跨进程以及自定义,安全模式则包括SAML,Kerberos,X509,用户/密码,自定义等多种标准与模式。也就是说,在WCF框架下,开发基于SOA的分布式系统变得容易了,微软将所有与此相关的技术要素都包含在内,掌握了WCF,就相当于掌握了叩开SOA大门的钥匙。

WCF是建立在.Net Framework 2.0基础之上的,正式的版本应该会作为Windows Vista的核心部分而Release。然而,这并不代表WCF只能运行在Windows Vista下。只要安装了WinFX Runtime Components,在Windows XP和Windows 2003操作系统下,仍然可以使用。Visual Studio 2005中并没有包含WCF,但是当安装好了WinFX Runtime Components后,我们就可以在Visual Studio 2005环境下开发和创建WCF的程序了。

目前最新的WCF版本是February 2006 CTP,下载页面是:https://www.wendangku.net/doc/4013443398.html,/downloads/details.aspx?FamilyId=F51C4D96-9AEA-474F-86D3-172 BFA3B828B&displaylang=en。使用WCF需要用到一些相关的工具,如SvcUtil.exe,所以还需要下载WinFX Runtime Components的SDK,其下载页面是:https://www.wendangku.net/doc/4013443398.html,/downloads/details.aspx?FamilyId=9BE1FC7F-0542-47F1-88DD-61E3 EF88C402&displaylang=en。安装SDK可以选择网络安装或本地安装。如果是本地安装,文件大小为1.1G左右,是ISO文件。安装了SDK后,在program files目录下,有microsoft SDK 目录。

WCF是微软重点介绍的产品,因此也推出了专门的官方网站(https://www.wendangku.net/doc/4013443398.html,),该网站有最新的WCF新闻发布,以及介绍WCF的技术文档和样例代码。

二、WCF的优势

在David Chappell所撰的《Introducing Windows Communication Foundation》一文中,用了一个活鲜鲜的例子,来说明WCF的优势所在。假定我们要为一家汽车租赁公司开发一个新的应用程序,用于租车预约服务。该租车预约服务会被多种应用程序访问,包括呼叫中心(Call Center),基于J2EE的租车预约服务以及合作伙伴的应用程序(Partner Application),如图所示:

从功能的角度来看,WCF完全可以看作是ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ等技术的并集。(注:这种说法仅仅是从功能的角度。事实上WCF远非简单的并集这样简单,它是真正面向服务的产品,它已经改变了通常的开发模式。)因此,对于上述汽车预约服务系统的例子,利用WCF,就可以解决包括安全、可信赖、互操作、跨平台通信等等需求。开发者再不用去分别了解.Net Remoting,ASMX等各种技术了。

概括地说,WCF具有如下的优势:

1、统一性

前面已经叙述,WCF是对于ASMX,.Net Remoting,Enterprise Service,WSE,MSMQ 等技术的整合。由于WCF完全是由托管代码编写,因此开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象的应用程序那样,利用WCF

来创建面向服务的应用程序。https://www.wendangku.net/doc/4013443398.html,/images/cnblogs_com/wayfarer/wcf/wcf01.gif

https://www.wendangku.net/doc/4013443398.html,/images/cnblogs_com/wayfarer/wcf/wcf03.gif

2、互操作性

由于WCF最基本的通信机制是SOAP,这就保证了系统之间的互操作性,即使是运行不同的上下文中。这种通信可以是基于.Net到.Net间的通信,如下图所示:

可以跨进程、跨机器甚至于跨平台的通信,只要支持标准的Web Service,例如J2EE应用服务器(如WebSphere,WebLogic)。应用程序可以运行在Windows操作系统下,也可以运行在其他的操作系统,如Sun Solaris,HP Unix,Linux等等。如下图所示:

3、安全与可信赖

WS-Security,WS-Trust和WS-SecureConversation均被添加到SOAP消息中,以用于用户认证,数据完整性验证,数据隐私等多种安全因素。

在SOAP 的header中增加了WS-ReliableMessaging允许可信赖的端对端通信。而建立在WS-Coordination和WS- AtomicTransaction之上的基于SOAP格式交换的信息,则支持两阶段的事务提交(two-phase commit transactions)。https://www.wendangku.net/doc/4013443398.html,/images/cnblogs_com/wayfarer/wcf/wcf04.gif

上述的多种WS-Policy在WCF中都给与了支持。对于Messaging而言,SOAP是Web Service的基本协议,它包含了消息头(header)和消息体(body)。在消息头中,定义了WS-Addressing用于定位SOAP消息的地址信息,同时还包含了MTOM(消息传输优化机制,Message Transmission Optimization Mechanism)。如图所示:https://www.wendangku.net/doc/4013443398.html,/images/cnblogs_com/wayfarer/wcf/wcf05.gif

4、兼容性

WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术如ASMX 和.Net Remoting。即使对于WCF和ASMX而言,虽然两者都使用了SOAP,但基于WCF 开发的应用程序,仍然可以直接与ASMX进行交互。

什么是WCF?

根据微软官方的解释,WCF(之前的版本名为“Indigo”)是使用托管代码建立和运行面向服务(Service Oriented)应用程序的统一框架。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案,且能与已有系统兼容协作。WCF是微软分布式应用程序开发的集大成者,它整合了.Net平台下所有的和分布式系统有关的技术,例如.Net Remoting、ASMX、WSE和MSMQ。

WCF是微软重点介绍的产品,因此也推出了专门的官方网站

(https://www.wendangku.net/doc/4013443398.html,),该网站有最新的WCF新闻发布,以及介绍WCF的技术文档和样例代码。

WCF的ABC:

每一篇入门性质的介绍WCF的文章,都会提到ABC:Address, Binding, Contract。

Address: 每一个WCF的Service都有一个唯一的地址。这个地址给出了Service的地址和传输协议(Transport Protocol)

?Binding: 通信(Communication)的方式很多,同步的request/reply模式,非同步的fire-and-forget模式。消息可以单向或者双向的发送接收,可以立即发送或者把它放入到某一个队列中再处理。所供选择的传输协议也有Http, Tcp,P2P, IPC等。当要考虑Client/Server如何进行通讯的

时候,除了考虑以上提到的几点之外,还有其它很多需要考虑的因素,如安全,性能等。因此,简单来说,Binding只不过是微软提供的一组考虑比较周全、常用的封装好的通信方式。

?Contract:Contract描述了Service能提供的各种服务。Contract有四种,包括Service Contract, Data Contract, Fault Contract和Message

Contract

WCF的简单的例子:

每一个Service都需要有一个host。这个host的形式可以是多种多样,可以是WinForm Application, Console Application,也可以IIS,或者是WAS(Vista),Windows Service等。

首先,来定义Service的Contract.

[ServiceContract]

public interface IHelloService

{

[OperationContract]

void SayHello();

[OperationContract]

string SayHelloToEmployee(Employee employee);

// TODO: Add your service operations here

}

// Use a data contract as illustrated in the sample below to add composite types to service operations

[DataContract]

public class Employee

{

private string firstName;

private string lastName;

[DataMember]

public string FirstName

{

get { return firstName; }set { firstName = value; }

}

[DataMember]

public string LastName

{

get { return lastName; }set { lastName = value; }

}

}

在定义好了Service Contract和Data Contract之后,还需要定义另外两个元素,Address和Binding。这两者都可以通过编程和配置文件来控制。这里就用配置文件的方式了,把这些代码写入host程序(Console)的App.config文件中:

behaviorConfiguration="Default">

binding="netTcpBinding"bindingConfiguration=""

contract="HelloServiceLibrary.IHelloService"/>

contract="HelloServiceLibrary.IHelloService" />

再通过Servicehost提供的方法Open(),就可以启动Service了。

Client端要调用Service,都需要通过Proxy来完成,Proxy可以用VS2005或者Windows SDK提供的工具SvcUtil来完成。

WCF学习 1 WCF简介:

听说WCF已经很长时间了,就是一直没时间去仔细学习过,现在工作大体上不算太忙,所以找了个空闲时间来学习这个“新”技术,后面都将是我学习过程中的笔记,大部分来自于MSDN。

一、WCF简介

WCF的全称是Windows Communication Foundation。根据MSDN的介绍,设计WCF的目的是为分布式计算提供可管理的方法,提供广泛的互操作性,并为服务定位提供直接的支持。

WCF通过一种面向服务的新型编程模型简化了关联应用程序的开发。通过提供分层的体系结构,WCF可以支持多种风格的分布式应用程序开发。WCF通道体系结构在底层提供了异步的非类型化消息传递基元。建立在此基础之上的是由于进行安全可靠的事物处理数据交换的各种协议功能,以及广泛的传输协议和编码选择。

WCF将Web服务的概念直接映射到.NET Framework的公共语言运行库中相对应的内容,包括将消息灵活且可扩展地映射到用各种.NET预言实现的服务。WCF还提供松散耦合和版本管理的序列化功能,并提供与MSMQ、COM+、https://www.wendangku.net/doc/4013443398.html, Web服务、WSE等现有.NET Framework分布式系统技术一级很多其他功能的集成和互操作性。

WCF学习 2 WCF基础知识:

WCF基础知识

WCF是一个运行库和一组API,用于创建在服务器与客户端之间发送消息的系统。

WCF建立在基于消息的通信的基础之上,可以建模为消息的任何信息都可以在WCF中按照统一的方式进行表示。消息在终结点之间发送。终结点是发送或接收消息的场所,服务器公开一个或多个应用程序终结点,客户端生成一个与服务端的其中一个终结点兼容的终结点。

终结点通过一组描述表示消息发送的位置、消息发送方式、消息的具体信息等内容。服务端将这些描述最为元数据公开,客户端通过这些元数据生成与服务端兼容的终结点。

WCF可以使用常用的传输协议如HTTP、TCP等通过Intranet或者Internet发送消息,也可以使用其他的通信协议在终结点之间发送消息,如MSMQ或者其他P2P协议。WCF可以添加更多的传输机制。WCF对消息格式化提供了多种编码方式,如文本编码、消息传输优化机制编码(MTOM)、用于实现高效传输的二进制编码等。WCF也可以添加更多的编码机制,如压缩编码等等。

WCF支持多种消息模式:请求-回复、单向和双工通信等。WCF API和运行库还可以保证消息传递过程中的安全性和可靠性。

WCF学习 3 WCF术语1:

WCF 文档中使用的其他概念和术语包括:

消息

消息是一个独立的数据单元,它可能由几个部分组成,包括消息正文和消息头。

服务

服务是一个构造,它公开一个或多个终结点,其中每个终结点都公开一个或多个服务操作。

终结点

终结点是用来发送或接收消息(或执行这两种操作)的构造。终结点包括一个定义消息可以发送到的目的地的位置(地址)、一个描述消息应如何发送的通信机制规范(绑定)以及对于可以在该位置发送或接收(或两者皆可)的一组消息的定义(服务协定)—该定义还描述了可以发送何种消息。

WCF 服务作为一个终结点集合向外界公开。

应用程序终结点

一个终结点,由应用程序公开并对应于该应用程序实现的服务协定。

基础结构终结点

一个终结点,由基础结构公开,以便实现与服务协定无关的服务需要或提供的功能。例如,服务可能拥有一个提供元数据信息的基础结构终结点。

地址

地址指定接收消息的位置。地址以统一资源标识符(URI) 的形式指定。URI 架构部分指定用于到达该地址的传输机制,如HTTP 和TCP。URI 的层次结构部分包含一个唯一的位置,其格式取决于传输机制。

使用终结点地址可以为服务中的每个终结点创建唯一的终结点地址,或者在某些特定条件下在终结点之间共享一个地址。下面的示例演示了一个将HTTPS 协议和一个非默认端口结合使用的地址:

HTTPS://cohowinery:8005/ServiceModelSamples/CalculatorService

绑定

绑定定义终结点与外界进行通信的方式。它由一组称为绑定元素的要素构造而成,这些元素“堆叠”在一起以形成通信基础结构。绑定最起码应定义传输协议(如HTTP 或TCP)和所使用的编码(如文本或二进制)。绑定可以包含指定详细信息(例如,用于保护消息的安全机制或终结点所使用的消息模式)的绑定元素。有关更多信息,请参见配置服务。

绑定元素

绑定元素表示绑定的特定部分,如传输协议、编码、基础结构级协议(如WS-ReliableMessaging)的实现以及通信堆栈的其他任何要素。

行为

行为是控制服务、终结点、特定操作或客户端的各种运行时方面的要素。行为按照范围进行分组:常见行为在全局范围内影响所有终结点,服务行为仅影响与服务相关的方面,终结点行为仅影响与终结点相关的属性,操作级行为影响特定操作。例如,有一种服务行为是遏制,它指定当过多的消息可能超出服务的处理能力时,服务应该如何反应。另一方面,终结点行为仅控制与终结点相关的方面,如查找安全凭据的方式和位置。

系统提供的绑定

WCF 包含许多系统提供的绑定。这些绑定是针对特定方案进行优化的绑定元素的集合。例如,WSHttpBinding 是为了与实现各种WS* 规范的服务进行互操作而专门设计的。通过仅提供那些可以正确应用于特定方案的选项,这些预定义的绑定可以节省时间。如果预定义的绑定不能满足您的要求,则可以创建您自己的自定义绑定。

配置与编码

可以通过编码、配置或将两者结合在一起来完成对应用程序的控制。配置的优点在于,它使除开发人员以外的其他人员(如网络管理员)可以在代码编写完成后对客户端和服务参数进行设置,而不必重新编译。使用配置不仅可以设

置值(如终结点地址),还可以通过添加终结点、绑定和行为来实施进一步的控制。使用编码,开发人员可以保持对服务或客户端的所有组件的严格控制,而且可以对通过配置完成的所有设置进行检查,并根据需要通过代码进行重写。

服务操作

服务操作是在服务的代码中定义的过程,用于实现某种操作的功能。此操作作为一个WCF 客户端上的方法向客户端公开。该方法可能返回一个值,并可能采用数量可选的参数,或是不采用任何参数且不返回任何响应。例如,一个实现简单的“Hello”的操作可以用作客户端存在通知,并可以开始一系列操作。

服务协定

服务协定将多个相关的操作联系在一起,组成单个功能单元。协定可以定义服务级设置,如服务的命名空间、对应的回调协定以及其他此类设置。在大多数情况下,协定是通过用您所选的编程语言创建一个接口并将ServiceContractAttribute 属性应用于该接口来定义的。通过实现该接口,可生成实际的服务代码。

操作协定

操作协定定义参数并返回操作的类型。在创建定义服务协定的接口时,可以通过将OperationContractAttribute 属性应用于协定中包含的每个方法定义来表示一个操作协定。可以将操作建模为采用单个消息作为参数并返回单个消息,或者建模为采用一组类型作为参数并返回一个类型。在后一种情况下,系统将确定需要为该操作交换的消息的格式。

消息协定

消息协定描述消息的格式。例如,它会声明消息元素应包含在消息头中还是包含在消息正文中,应该对消息的何种元素应用何种级别的安全,等等。

错误协定

可以将错误协定与服务操作进行关联,以指示可能返回到调用方的错误。一个操作可能具有零个或更多个与其相关联的错误。这些错误是在编程模型中建模为异常的SOAP 错误。

数据协定

服务使用的数据类型必须在元数据中进行描述,以使其他各方可以与该服务进行交互操作。数据类型的说明称为数据协定,而这些类型可以在消息的任何部分使用(例如,作为参数或返回类型)。如果服务仅使用简单类型,则无需显式使用数据协定。

宿主

服务必须承载于某个进程中。“宿主”是控制服务的生存期的应用程序。服务可以是自承载的,也可以由现有的宿主进程进行管理。

WCF学习 4 WCF术语2:

自承载服务

自承载服务是在开发人员创建的进程应用程序中运行的服务。开发人员控制服务的生存期、设置服务的属性、打开服务(这会将服务设置为侦听模式)以及关闭服务。

宿主进程

宿主进程是专为承载服务而设计的应用程序。这些宿主进程包括Internet 信息服务(IIS)、Windows 激活服务(WAS) 和Windows 服务。在这些宿主方案中,由宿主控制服务的生存期。例如,使用IIS 可以设置包含服务程序集和配置文件的虚拟目录。在收到消息时,IIS 将启动服务并控制服务的生存期。

实例化

服务具有一个实例化模型。有三种实例化模型:“单个”,在这种模型中,由单个CLR 对象为所有客户端提供服务;“每个调用”,在这种模型中,将创建一个新的CLR 对象来处理每个客户端调用;“每个会话”,在这种模型中,将创建一组CLR 对象,并且为每个独立的会话使用一个对象。实例化模型的选择取决于应用程序要求和服务的预期使用模式。

客户端应用程序

客户端应用程序是与一个或多个终结点交换消息的程序。客户端应用程序通过创建一个WCF 客户端实例并调用该WCF 客户端的方法来开始工作。需要注意的是,单个应用程序既可以充当客户端,也可以充当服务。

通道

通道是绑定元素的具体实现。绑定表示配置,而通道是与该配置相关联的实现。因此,每个绑定元素都有一个相关联的通道。通道堆叠在一起以形成绑定的具体实现:通道堆栈。

WCF 客户端

WCF 客户端是一个将服务操作作为方法公开的客户端应用程序构造(用您所选的.NET Framework 编程语言编写,如Visual Basic 或Visual C#)。任何应用程序都可以承载WCF 客户端,包括承载服务的应用程序。因此,可以创建一个包含其他服务的WCF 客户端的服务。

通过使用ServiceModel Metadata Utility Tool (Svcutil.exe) 并使其指向正在运行的发布元数据的服务,可以自动生成WCF 客户端。

元数据

服务的元数据描述服务的特征,外部实体需要了解这些特征以便与该服务进行通信。ServiceModel Metadata Utility Tool (Svcutil.exe) 可以使用元数据生成WCF 客户端以及客户端应用程序可用来与服务进行交互的伴随配置。

服务所公开的元数据包括XML 架构文档(用于定义服务的数据协定)和WSDL 文档(用于描述服务的方法)。

启用元数据后,WCF 通过检查服务及其终结点自动生成服务的元数据。若要发布服务的元数据,必须显式启用元数据行为。

安全

WCF 中的安全包括保密性(为防止偷听而进行的消息加密)、完整性(用于检测对消息所做篡改的方法)、身份验证(用于验证服务器和客户端的方法)以及授权(资源访问控制)。通过利用现有安全机制(如TLS over HTTP,也称为HTTPS)或通过实现各种WS-* 安全规范中的一个或多个规范,可以提供这些功能。

传输安全模式

可以通过以下三种模式之一来保证安全:传输模式、消息安全模式和使用消息凭据的传输模式。传输安全模式指定由传输层机制(如HTTPS)提供保密性、完整性和身份验证。在使用像HTTPS 这样的传输协议时,此模式的优点在于性能出色,而且由于它在Internet 上非常流行,因此很容易理解。其缺点在于,

这种安全分别应用于通信路径中的每个跃点,这使得通信容易遭受“中间人”攻击。

消息安全模式

消息安全模式指定通过实现一个或多个安全规范来保证安全,如名为“Web Services Security: SOAP Message Security”(Web 服务安全:SOAP 消息安全)的规范(可在https://www.wendangku.net/doc/4013443398.html,/fwlink/?LinkId=94684 获得)。每个消息都包含必要的安全机制,用于在消息传输过程中保证安全,并使接收方能够检测到篡改和对消息进行解密。从这种意义上说,安全被封装在每个消息中,从而提供了跨多个跃点的端到端安全。由于安全信息成为消息的一部分,因此可以在消息中包含多种凭据(这些凭据称为“声明”)。这种方法还具有这样一个优点,即使得消息可以通过任意传输(包括在其起点和终点之间的多个传输)安全地传送。这种方法的缺点在于所使用的加密机制具有较高的复杂性,从而使性能受到影响。

使用消息凭据的传输安全模式

此模式使用传输层来提供消息的保密性、身份验证和完整性,并且每个消息都可以包含消息接收方所要求的多个凭据(声明)。

WS-*

一组不断增加的、在WCF 中予以实现的Web 服务(WS) 规范(如WS-Security、WS-ReliableMessaging 等)的简写。

WCF学习 5 第一个WCF服务1:

第一个WCF服务

学习了WCF的基础概念以后,第二步就应该来使用这项技术。所以,根据MSDN 提示,我尝试创建一个基于WCF的服务器和客户端应用程序。

要创建WCF服务,首先要做的就是应该把需要提供的服务和方法用接口的方式表现出来,并且使用WCF的ServiceContractAttribute和

OperationContractAttribute两个属性来修饰要公开的符合和方法。这一步,我们称之为定义服务协定(网上看到的文章中也有称之为创建服务契约的,不过都差不多)

学习MSDN上的例子,创建一个四则运算的WCF服务,创建过程如下,

1.创建一个名叫Server的C#控制台应用程序;

2. 为该项目添加引用System.ServiceModel,并且为代码添加using

System.ServiceModel;

3. 创建一个名为ICalculator接口,并为接口添加ServiceContractAttribute属

性:

[ServiceContract(Namespace = "https://www.wendangku.net/doc/4013443398.html,")]

public interface ICalculator

4. 为接口添加方法,并分别为这些方法添加OperationContractAttribute属性:

[OperationContract]

double Add(double n1, double n2);

[OperationContract]

double Subtract(double n1, double n2);

[OperationContract]

double Multiply(double n1, double n2);

[OperationContract]

double Divide(double n1, double n2);

5. 实现这个服务协定,就是创建一个实现上面那个接口的类:

namespace server

{

public class CalculatorService : ICalculator

{

#region ICalculator 成员

public double Add(double n1, double n2)

{

return n1 + n2;

}

public double Subtract(double n1, double n2)

{

return n1 - n2;

}

public double Multiply(double n1, double n2)

{

return n1 * n2;

}

public double Divide(double n1, double n2)

{

if (n2 != 0)

return n1 / n2;

else

return 0;

}

#endregion

}

}

WCF学习 6 第一个WCF服务2:

6. 运行WCF服务

要运行WCF服务需要执行下列几个步骤:

为服务创建基址。

为服务创建服务主机。

启用元数据交换。

打开服务主机。

代码如下:

using System;

using System.ServiceModel;

using System.ServiceModel.Description; //有一些代码需要用到这个命名空间中的类namespace server

{

class Program

{

static void Main(string[] args)

{

Uri baseAddress = new Uri("http://localhost:8000/CalculatorService"); //为服务创建基址

ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), baseAddress);//为服务创建服务主机

try

{

//添加服务终结点

selfHost.AddServiceEndpoint(

typeof(ICalculator),

new WSHttpBinding(),

"CalculatorService");

//启用元数据交换

ServiceMetadataBehavior smb = new ServiceMetadataBehavior();

smb.HttpGetEnabled = true;

selfHost.Description.Behaviors.Add(smb);

//打开服务主机

selfHost.Open();

Console.WriteLine("The service is ready.");

Console.WriteLine("Press to terminate service.");

Console.WriteLine();

Console.ReadLine();

//关闭服务主机

selfHost.Close();

}

catch (CommunicationException ce)

{

Console.WriteLine("An exception occurred: {0}", ce.Message);

selfHost.Abort();

}

}

}

}

WCF学习 7 第一个WCF客户端:

第一个WCF客户端

要创建WCF客户端,需要使用.NET Framework提供的实用工具来创建本地兼容终结点,然后通过调用这个兼容终结点的方法来使用WCF服务端提供的服务1. 创建名为Client的C#控制台应用程序

2. 为项目添加System.ServiceModel,并且为代码添加using

System.ServiceModel;

3. 运行server的项目,打开配置好环境的cmd控制台(如VS提供的那个cmd

控制台)运行如下命令,得到本地兼容终结点的代码:

svcutil.exe /language:cs /out:generatedProxy.cs /config:app.config http://localhost:8000/CalculatorService

代码的意思是生成C#代码,代码文件名为generatedProxy.cs,配置保存在app.config,服务终结点为http://localhost:8000/CalculatorService 至于生成的代码和配置文件的内容,我们先不考虑其内容的意义。以后接触到再说。

4. 把生成的文件添加到Client工程中去

5. 创建终结点客户端对象

EndpointAddress epAddress = new

EndpointAddress("http://localhost:8000/CalculatorService/CalculatorService");

CalculatorClient client = new CalculatorClient(new WSHttpBinding(), epAddress);

6. 调用WCF服务

// Call the Add service operation.

double value1 = 100.00D;

double value2 = 15.99D;

double result = client.Add(value1, value2);

Console.WriteLine("Add({0},{1}) = {2}", value1, value2, result);

// Call the Subtract service operation.

value1 = 145.00D;

value2 = 76.54D;

result = client.Subtract(value1, value2);

Console.WriteLine("Subtract({0},{1}) = {2}", value1, value2, result);

// Call the Multiply service operation.

value1 = 9.00D;

value2 = 81.25D;

result = client.Multiply(value1, value2);

Console.WriteLine("Multiply({0},{1}) = {2}", value1, value2, result);

// Call the Divide service operation.

value1 = 22.00D;

value2 = 7.00D;

result = client.Divide(value1, value2);

Console.WriteLine("Divide({0},{1}) = {2}", value1, value2, result);

7. 关闭客户端对象

client.Close();

8. 运行程序:要先运行server.exe程序以后,再运行client.exe程序,就可

以看到client中使用Server的服务得到计算的结果了。

Add(100,15.99) = 115.99

Subtract(145,76.54) = 68.46

Multiply(9,81.25) = 731.25

Divide(22,7) = 3.14285714285714

至此,一个简单的WCF服务端和客户端就建立完毕了。由于WCF架构本身就比较庞大和复杂,不可能通过一个程序就将WCF特性完全展示出来。后面,我还会根据学习的情况,继续介绍WCF

WCF学习 8 开发WCF应用程序的步骤:

开发WCF应用程序的步骤

要开发WCF应用程序,应该遵循下列步骤:

1.定义服务协定。

2.实现服务协定。

3.通过指定终结点信息和其他行为信息配置服务。

4.在服务器应用程序中承载服务。

5.生成客户端应用程序。

当然,这些步骤顺序也不是必须的,要按照实际情况来说,比如说,你只是想为别人提供WCF服务,那么你就不需要做第5步了。而如果你是在使用别人给你提供的WCF服务,那就可以直接从第5步开始。

WCF学习 9 设计和实现服务协定1:

创建服务协定

服务就是一组操作的集合。要创建服务协定,就必须对操作建模并且将这些操作进行分组。在WCF程序中。为接口中的一个方法添加OperationContractAttribute属性即可将这个方法声明为WCF服务协定中的操作。而为接口添加ServiceContractAttribute属性即可将这个接口声明为服务协定。

在服务协定接口中,如果一个方法没有被OperationContractAttribute属性标记,那么这个方法不作为WCF服务协定的操作。WCF客户端程序不能调用这样的方法。

根据MSDN的说明,设计服务协定时应该根据以下5点进行:

1.是否使用类或者接口

2.如何指定要交换的数据类型

3.可以使用的交换模式类型

4.是否可以将显式安全要求作为协定的一部分

5.对操作输入输出的限制

其实,类和接口都是可以为WCF服务定义服务协定的。但是,更应该使用接口而不是类来定义服务协定。因为接口可以直接对服务协定建模。如果不实现接口,接口的作用只是根据特定签名对一组方法进行定义。

服务协定接口具有托管接口的所有优点:

1.服务协定接口可以扩展任何数量的其他服务协定接口

2.一个类可以通过实现服务协定接口来实现任意数量的服务协定

3.可以通过更改接口实现来修改服务协定的实现,而不用更改服务协定

4.可以通过实现旧接口和新接口来确定服务的版本。

使用类来定义服务协定的好处是简单,方便。但是以上的优点就没有办法实现了。

WCF服务的每一个操作都会有一个返回值和一个参数,即使是void类型。在做参数传递的时候,服务操作不会传递对对象的引用,而是直接传递这个对象的副本。其实这很容易理解,因为WCF服务和WCF客户运行的进程可能不一样。服务是无法通过引用来操作客户的对象的。

更重要的一点是,服务中的每一个操作的输入和输出参数,都必须是可序列化的。WCF在传递数据的时候,需要将这些数据序列化后才能传递。

面向服务的应用程序在设计时为了和其他平台程序进行最大程度上的互操作。WCF建议开发人员对自己创立的类型使用DataContractAttribute和DataMemberAttribute属性进行标记,以创建数据协定,用于描述服务操作交换的数据。使用数据协定的好处就是,在服务端和客户端之间达成了一种协议,用于抽象要交换的数据,这样的好处是,为了进行更好的通信,客户端和服务端之间不需要共享相同的数据类型,而只需要使用相同的数据协定。数据协定为每个参数活返回类型精确定义为进行传输而序列化那些具体数据。

WCF学习 10 设计和实现服务协定2:

将参数和返回值映射到消息交换

WCF编程模型中可以指定3种消息交换模式:请求-答复、单向和双工消息模式

请求-答复模式

请求方将接受与请求相关的答复,这是默认的模式,前面我们建立的简单的WCF服务就使用这种模式。它可以将参数传递给服务,也可以将返回传递给客户。

这种模式下,除非客户异步调用操作,否则在操作返回前,客户将一直处于阻塞状态。即使操作返回void也是如此。所以,如果操作需要执行很长时间,那么,请求-答复模式将严重降低客户端的性能和响应能力。不过这种模式也有它的好处,就是响应消息可以返回SOAP错误,这样客户端就可以得到任何的WCF 服务中的错误、异常等信息,关于处理错误和异常的详细信息,后面会有专门的讨论。

建立请求-答复模式的服务协定是相当简单的,只需要为服务协定添加前面提到的两个服务协定属性(不需要指定其他参数)就可以了。

单向模式

如果WCF服务的客户不需要等待服务的操作完成,而且不想处理SOAP错误,那么这个操作可以定义为单向模式。单向模式中,除非要发送的数据相当庞大或者发送数据的时候出现了错误,其他情况下客户端将立即继续运行。

由于单向模式,调用服务操作的客户端不等待操作返回,因此任何定义为单向模式的操作必须返回void,否则将会引发InvalidOperationException异常。

为返回void的操作指定单向模式,将IsOneWay属性设置为true即可:[OperationContract(IsOneWay=true)]

void AddCounter();

双工模式

该模式的特点是,无论使用单向消息发送还是请求-答复模式,服务和客户都能够独立地向对方发送消息。双工模式可以为服务和客户双方都提供异步体验。

双工模式是三种消息模式中最复杂的一个,要实现双工模式,必须要建立回调协定,并且要将该回调协定设置到服务协定属性的CallbackContract属性中。[ServiceContract(Namespace = "https://www.wendangku.net/doc/4013443398.html,", SessionMode = SessionMode.Required,

CallbackContract = typeof(ICalculatorDuplexCallback))]

public interface ICalculatorDuplex

{

}

public interface ICalculatorDuplexCallback

{

[OperationContract(IsOneWay = true)]

void Equals(double result);

[OperationContract(IsOneWay = true)]

void Equation(string eqn);

}

需要指出的是,只要OperationContract的属性IsOneWay为true时,操作就不能拥有任何的传回动作。不管是返回值,对参数使用out或者ref修饰。否则都将返回InvalidOperationException异常。

服务协定上的消息保护级别

WCF服务协定可以为每个操作定义消息传递时的消息保护级别,默认情况下,消息传递是不被保护的。通过设置OperationContractAttribute属性的ProtectionLevel属性,可以指定该操作的消息保护级别。

ProtectionLevel属性接受ProtectionLevel枚举,ProtectionLevel枚举的内容和意义如下:

None 仅身份验证。

Sign 对数据签名可帮助确保所传输数据的完整性。

EncryptAndSign 对数据进行加密和签名可帮助确保所传输数据的保密性和完整性。

WCF“服务器已拒绝客户端凭据”解决办法:

将 WCF 服务器和客户端分别部署到不同机器上,可能会触发如下异常。

未处理 System.ServiceModel.Security.SecurityNegotiationException Message="服务器已拒绝客户端凭据。"

Source="mscorlib"

解决方法,就是调整服务器端 Binding 的安全方式,比如设为 "None"。NetTcpBinding binding = new NetTcpBinding();

binding.Security.Mode = SecurityMode.None;

ServiceHost host = new ServiceHost(typeof(MyService));

host.AddServiceEndpoint(typeof(IService), binding,

"net.tcp://192.168.0.112:8081");

ServiceMetadataBehavior metadata = new ServiceMetadataBehavior(); metadata.HttpGetUrl = new Uri("http://192.168.0.112:8080");

metadata.HttpGetEnabled = true;

host.Description.Behaviors.Add(metadata);

host.Open();

或者在配置文件中设置。

我的WCF之旅(1):创建一个简单的WCF程序:

在Microsoft提出.NET战略以来,先后推出了一系列产品和技术,这些产品和技术为我们在.NET平台下建立企业级的分布式应用提供了很大的便利。这些技术和产品包

括:.NET Remoting,XML WebSerivce,WSE(2.0,3.0),Enterprise Service,MSMQ ......

我们知道,和一个相对独立的应用不同,我们开发一个分布式应用,尤其是开发一个企业级的分布式应用,我们需要考虑较多的东西。比如我们要考虑数据在不同的应用之间传递时采取什么样的机制,这种数据传递是否是安全的,可靠的;如何在分布式的环境下进行异常处理;如何把分别在不同应用中执行的操作纳入同一个事务……

对于我们上面提到的这些问题,这些都是开发分布式应用考虑的典型的问题。值得庆幸的是,Microsoft开发的分布式的产品能够部分的解决这些问题。.NET Remoting 为我们在.NET平台下提供了非常好的解决方案(我个人认为,.NET Remoting是.NET平台下最为成熟的分布式技术。比如相较于另一个使用更为广泛的技术XML Web Service,它具有一些自己独特的特性:可以使用不同的传输层协议进行通信——Http & TCP;可以使用不同的消息编码方式——Bianry & Text (XML);可以寄宿到IIS和任何一种托管的应用下——Console Application 、WinForm Application、Windows Service……;Server端可以通过双向通信回调(Callback)客户端的操作;……)XML Web Service为使我们实现跨平台的系统能够集成显得如此简单。随着技术的不断发展,相关的技术规范(WS-* Specification)不断完善,XML Web Service现在已经成为使用最为广泛的分布式技术了。XML Web Service能够得到如此广泛的推广,这得得益于Microsoft先后两次推出的Web Service Enhancement (WSE 2.0 、WSE 3.0)。如果没有WSE,单纯的asmx下的如此的担保和不可靠。WSE为Web Service解决了几大难题:Security、Reliable Messaging、transaction Handling以及大数据的有效传输。MSMQ作为一种简单而有效的机制为不同应用之间数据的传递提供了保障。

其实,通过合理利用上面这些分布式的技术完全可以为我们建立的一套适合不同层次需要的分布式构架。但这里面仍然存在一些问题,那就是上面这些技术和产品只能解决某一方面的问题;比如.NET Remoting虽然在.NET平台下是一个很好的依靠,但是考虑到他不能提供不同平台之间的互操作性。另外,这些技术适合用了完全不同的编程方式,使得我们很难从容地从其中一种转移到另一种上来。基于这些原因,我们需要一套全新的技术整合以上都这些技术,于是我们有了今天的WCF——Windows Communication Foundation。WCF建立一套框架,是我们通过一致的编程模式,使用不同的技术构建我们的分布式应用。

虽然很早开始接触WCF,但所学的总是零零碎碎。现在开始系统地研究WCF,希望与大家一同分享我的一些所得,同时希望能通过这样的一个机会与大家一些探讨WCF,不对的地方希望大家指正。

一开始我们先建立一个简单程序看WCF如何工作:

1建立整个应用的简单构架

整个构架如图所示,这个Solution由5个Project组成:Artech.WCFService.Contract;Artech.WCFService.Service;Artech.WCFService.Hosting;

Artech.WCFService.Client;http://localhost/WCFService。

?Artech.WCFService.Contract:Class Library Project,用来保存Contract (Service Contact、Message Contract、Data Contract),之所以把Contract 独立出来的原因是考虑到他同时被Server端——Service本身和Service Hosting和Client端使用。(现在很多的参考书,包括MSDN都使用ServiceModel Metadata Utility Tool (Svcutil.exe)这样的一个工具来访问Service的Metadata Endpoint

来生成我们的客户段代码,这些代码就包括Service Contract(一般是一个Interface),实现了这个Contract的Proxy Class(一个集成自

System.ServiceModel.CientBase的一个Class)和相应的Configuration。这个工具确实给我提供了很大的方便。但我不推荐使用这样的方法(我天生不倾向对于这些代码生成器),因为我觉得,在Contract可得的情况下-比如Service和Client

都是自己开发,让Service和Client实现的Contract是同一个Contract能够保证一致性。这个Project引用System.ServiceModel DLL。

? Artech.WCFService.Service:Class Library Project,Service的业务逻辑,这个Project引用Artech.WCFService.Contract Project和System.ServiceModel DLL。

? Artech.WCFService.Hosting:Console Application,用于以Self-Hosting的方式Host Service。这个Project引用Artech.WCFService.Contract和Artech.

Project WCFService.Service。Project和System.ServiceModel DLL。

?Artech.WCFService.Client:Console Application,用以模拟现实中的调用Service的Clinet。这个Project引用Artech.WCFService.Contract Project 和System.ServiceModel DLL。

?http://localhost/WCFService: Web Site Project,用于模拟如何把Service Host到IIS中。这个Project引用Artech.WCFService.Contract、

Artech.WCFService.Service和System.ServiceModel DLL。

2创建Service Contract

在这个例子中我们建立一个简单的案例,做一个计算器,假设我们只要求他做简单的加法运算就可以了。在Artech.WCFService.Contract添加一个interface,名称叫做ICalculator。

using System.Collections.Generic;

using System.Text;

using System.ServiceModel;

namespace Artech.WCFService.Contract

{

[ServiceContract]

public interface ICalculator

{

[OperationContract]

double Add(double x, double y);

}

}

使一个Interface成为Service Contract的方法很简单,就是把ServiceContractAttribute 应用到这个interface上,并在代表单个Operation的方法上应用OperationContractAttribute。这个使用Custom Attribute的编程模式被称为声明式的编程(Declarative)方式,他在.NET Framework 1.1以前用到的地方还不是太多,在.NET Framework 2.0,尤其是NET Framework 3.0中,这种方式已经变得随处可见了。

我们可以把Contract定义成一个Interface,也可以把它定义到一个Class中——这个Class 中既包涵Service本身又作为一个Contract而存在。但我推荐使用第一种方法——Serive和Contract相分离。

在WCF中,Contract的功能实际上就定义一个Service包含哪些可用的Operation,以及的每个Opertaion的方法签名。从消息交换(Message Exchange)的角度讲,Contract定义了调用相应的Serive采取的消息交换的模式(Message Exchange Pattern - MEP),我们经常使用的MEP包括三种:Oneway,Request/Response,和Duplex。因为调用Service 的过程实际就是消息交换的过程,以常见的Request/Response为例。Client调用某个方面远程访问Service,所有的输入参数被封装到Request Soap Message并被发送到Service 端,Service端监听到这个Soap Request,创建相应的Service Object并调用相关的操作,最后将Result(这可以是Return Value,Reference Parameter和Output Parameter)封装成Soap Message发送回Client端。这里需要注意,如果采用的是Request/Response 的模式,即使相应的操作没有Return Value,Reference Parameter和Output Parameter (它被标记为void),Service仍然会返回一个空的Soap Message给Client端。

3创建Service

前面我们已经创建了我的Artech.WCFService.Contract。其实我们从Contract这个单词上讲,它就是一种契约,一种承诺。他表明在上面签了字你就的履行Contract上义务。Service 就是这样一个需要履行Contract义务的人。在这个例子中,Contract以Interface的方式定义的一些Operation。作为Service,在Contract上签字的方式就是实现这样的一个Interface。下面的Service得到code,很简单。

using System;

using System.Collections.Generic;

using System.Text;

using System.ServiceModel;

using Artech.WCFService.Contract;

namespace Artech.WCFService.Service

{

public class CalculatorService:ICalculator

{

#region ICalculator Members

public double Add(double x, double y)

{

return x + y;

}

#endregion

}

}

4.Hosting Service

就像Remoting一样,我们继承自System.MarshalByRefObject的对象必须Host到某一个运行的进程中,他才开始监听来自Client端的请求,当Client才能通过Proxy远程的调用,Remoting Infrastructure监听到来自Client端的请求,他会激活相应的remote Object (我们只考虑Server Activate Object——SAO)。实际上对于WCF Service也需要一个Host环境才有其发挥作用的舞台。就像Remoting一样,你可以使用任何一种Managed Application——Console Application、WinForm Application、https://www.wendangku.net/doc/4013443398.html, Application——作为它的Host环境。你甚至可以用它Host到Windows Service中和IIS中(后面我将会讲到如何做)。

我们知道WCF中,Client端和Service端是通过Endpoint来通信的,Endpoint有包含3个部分,经典地称为ABC.

A代表Address,它包含一个URI,它指明Service存在于网络的某个地方,也就是说它为Client 断指明在什么地方去找到这个Service。很多人认识Address仅仅只是一个具有Identity的URI,实际上不然,Address不止于此,它还包含一些Header,这些信息在某些情况下对于如何寻址有很大的意义(比如在client的最终Service之间还有一些Intermediary节点的情况下)。在.NET中,Address用System.ServiceModel.EndpointAddress来表示。

B代表Binding,Binding封装了所有Client和Service段消息交换的通信细节。比如他定义了通信应该采用的Transport-比如我们是因该采用Http,TCP,Named Pipe或者是MSMQ;通信的内容应该采取怎样的编码——比如是Text/XML,Binary还是MTOM。以上这些都得一个Binding所必须定义的内容,此外,Binding还可以定义一些其他的有关通信的内容,比如Security,Reliable Messaging,Session,Transaction等等。正因为Binding对于通信的重要性,只有Service端的Binding和Client的Binding相互匹配的时

候,他们之间在可以相互通信。如何使Client Binding匹配Service Binding呢?最简单也是最直接的方法就是使用相同的Binding。WCF为我们定义了一系列的System Defined Binding,这些Binding在Transport,Interoperability,Security,Session Support,以及Transaction Support方面各有侧重。基本上WCF为我们定义的这些Binding已经够我们使用的了,如果,实在满足不了要求,你还可以建立自己的Custom Binding。

C代表Contract这在上面已经提及,这里不再累赘。

Host的本质就是把一个Service置于一个运行中的进程中,并以Endpoint的形式暴露出来,并开始监听来自Client端的请求。这里值得注意的是,同一个Service可以注册若干不同的Endpoint,这样不同的Client就可以以不同的方式来访问同一个Service.比如,同一个Intranet的Client可以以TCP的方式访问Service,另一个存在已Internet中的Client则只能以Http的方式访问。

using System;

using System.Collections.Generic;

using System.Text;

using System.ServiceModel;

using Artech.WCFService.Contract;

using Artech.WCFService.Service;

using System.ServiceModel.Description;

namespace Artech.WCFService.Hosting

{

class Program

{

static void Main(string[] args)

{

HostingServiceViaCode();

}

static void HostingServiceViaCode()

{

//Specify the base Address

Uri baseUri = new Uri("http://localhost:8080/calculatorService");

//create a new ServiceHost object and specify the corresponding Service and base Address

//It is recommended to apply the using pattern to make sure the sevice host can be closed properly.

using (ServiceHost calculatorServiceHost = new ServiceHost(typeof(Calcu latorService), baseUri))

{

//Create a Binding for Endpoint.

BasicHttpBinding Binding = new BasicHttpBinding();

//Create a Service Endpoint by specify the Address(it is absolute o r relative path based on the base Address, the empty string indicates the Address e quals base Address),

【操作系统】Windows XP sp3 VOL 微软官方原版XP镜像

操作系统】Windows XP sp3 VOL 微软官方原版XP镜像◆ 相关介绍: 这是微软官方发布的,正版Windows XP sp3系统。 VOL是Volume Licensing for Organizations 的简称,中文即“团体批量许可证”。根据这个许可,当企业或者政府需要大量购买微软操作系统时可以获得优惠。这种产品的光盘卷标带有"VOL"字样,就取 "Volume"前3个字母,以表明是批量。这种版本根据购买数量等又细分为“开放式许可证”(Open License)、“选择式许可证(Select License)”、“企业协议(Enterprise Agreement)”、“学术教育许可证(Academic Volume Licensing)”等5种版本。根据VOL计划规定, VOL产品是不需要激活的。 ◆ 特点: 1. 无须任何破解即可自行激活,100% 通过微软正版验证。 2. 微软官方原版XP镜像,系统更稳定可靠。 ◆ 与Ghost XP的不同: 1. Ghost XP是利用Ghost程序,系统还原安装的XP操作系统。 2. 该正版系统,安装难度比较大。建议对系统安装比较了解的人使用。 3. 因为是官方原版,因此系统无优化、精简和任何第三方软件。 4. 因为是官方原版,因此系统不附带主板芯片主、显卡、声卡等任何硬件驱动程序,需要用户自行安装。 5. 因为是官方原版,因此系统不附带微软后续发布的任何XP系统补丁文件,需要用户自行安装。 6. 安装过程需要有人看守,进行实时操作,无法像Ghost XP一样实现一键安装。 7. 原版系统的“我的文档”是在C盘根目录下。安装前请注意数据备份。 8. 系统安装结束后,相比于Ghost XP系统,开机时间可能稍慢。 9. 安装大约需要20分钟左右的时间。 10. 如果你喜欢Ghost XP系统的安装方式,那么不建议您安装该系统。 11. 请刻盘安装,该镜像用虚拟光驱安装可能出现失败。 12. 安装前,请先记录下安装密钥,以便安装过程中要求输入时措手不及,造成安装中断。 ◆ 系统信息:

微软正版化报告-客户签收

微软正版化报告-客户签收

2006年4月,国家九部委联合发文,明确要求企业实施软件正版化工作;云南省政府也于2006年9月颁布文件,要求省内企业全面展开软件正版化工作。 2010年10月19日,国务院总理温家宝主持召开国务院常务会议,决定开展打击侵犯知识产权和制售假冒伪劣商品专项行动。会议指出,近年来,在党中央、国务院高度重视和各地区、各部门共同努力下,我国知识产权保护工作取得积极成效。但侵犯知识产权、制售假冒伪劣商品现象仍时有发生,干扰了市场经济正常秩序,妨害企业竞争力和创新积极性,损害了我国的国际形象。为加大知识产权保护力度,维护公平有序的市场环境,会议决定,从2010年10月底开始,在全国开展为期半年的打击侵犯知识产权和制售假冒伪劣商品专项行动。 会议强调,专项行动要以保护著作权、商标权、专利权和植物新品种权等为重点内容,以新闻出版产业、文化娱乐业、高新技术产业、农业为重点领域,以产品制造集中地、商品集散地、侵犯知识产权和制售假冒伪劣商品案件高发地为重点地区,加大执法力度,严肃查处侵权、

假冒、盗版的大案要案,曝光一批违法违规企业,大力净化市场环境,增强企业诚信守法经营意识,形成自觉抵制假冒伪劣商品的社会氛围,积极营造知识产权保护的良好环境。一要加大生产源头治理力度。严厉查处非法印刷、复制各类出版物、印刷品、光盘、计算机软件及包装装潢、商标标识等行为。严格审查生产企业资质,坚决取缔无证生产。加强农产品种子品种真实性鉴定,打击无证和“套牌”生产、销售授权品种等行为。二要加强市场监管。查处侵犯注册商标的违法行为,制止恶意抢注商标。加强图书、软件和音像制品市场巡查,严厉打击盗版和专利侵权、假冒行为。加强对商贸流通企业的管理和规范。加大对制售假冒伪劣药品、扰乱药品生产经营秩序行为的打击力度。三要强化进出口环节和互联网等领域的知识产权保护。加强口岸监管,加大对进出口侵犯知识产权企业的处罚力度。继续做好重要展会知识产权保护工作。严厉打击互联网侵权盗版和利用互联网、通信与电视网络销售侵犯知识产权、假冒伪劣商品的行为。四要加大刑事司法打击力度。强化行政执法和刑事司法的有效衔接,重点查办一批情节严重、影响恶劣

Windows7 SP1官方原版下载

Windows7 SP1官方原版 以下所有版本都为Windows7 SP1官方原版,请大家放心下载! 32位与64位操作系统的选择:https://www.wendangku.net/doc/4013443398.html,/Win7News/6394.html 最简单的硬盘安装方法:https://www.wendangku.net/doc/4013443398.html,/thread-25503-1-1.html 推荐大家下载旗舰版,下载后将sources/ei.cfg删除即可安装所有版本,比如旗舰,专业,家庭版。 ============================================ Windows 7 SP1旗舰版中文版32位: 文件cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso SHA1:B92119F5B732ECE1C0850EDA30134536E18CCCE7 ISO/CRC:76101970 cn_windows_7_ultimate_with_sp1_x86_dvd_u_677486.iso.torrent(99.63 KB, 下载次数: 326189) Windows 7 SP1旗舰版中文版64位: 文件cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso SHA1: 2CE0B2DB34D76ED3F697CE148CB7594432405E23 ISO/CRC: 69F54CA4 cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso.torrent(128.17 KB, 下载次数: 197053)

WCF教程(一)

跟我一起从零开始学WCF(1)
WCF概述
徐长龙 MSDN 特邀讲师 vsts_china@https://www.wendangku.net/doc/4013443398.html,

加速企业解决方案部署尽在
资源和利益
? 用于解决方案开发的集中资源 用于解决方案开发的集中资源:资源包括指向测试工具、开发 资源包括指向测试工具 开发 人员 SDK、技术论坛、联机培训等的链接,微软全球技术支持 中心( (GTSC) )的邮件技术支持。 ? 对市场调查的访问权限:您可以使用这些宝贵信息来识别您当 前的客户或未来客户的特定需求。 ? 认证徽标计划:该徽标可以向客户证明您所具有的优秀技术。 ? 市场营销和销售支持
https://www.wendangku.net/doc/4013443398.html, h O

Metro – ISV领航计划
最先应用微软最新技术 提升ISV 提升 ISV竞争优势和商业价值 竞争优势和商业价值
? Metro 提供了结构化的支持来帮助ISV进行新技术的评估和 部署 部署: Discover – 参与前沿技术培训 – 评估最新的微软技术及产品 Release Learn – 获取微软Beta版产品的技术支持 – 联络全球开发人员和架构师社区 – 与世界级的商务和技术社区分享最先 Develop 部署的经验

收听本次课程需具备的条件
? 熟悉Web Service编程 ? 熟悉Visual Studio 2005/2008 ? 熟悉分布式应用程序开发
Level 200

本次课程内容包括 ? 什么是WCF? ? WCF背景介绍

Microsoft 微软官方原版(正版)系统大全

Microsoft 微软官方原版(正版)系统大全 微软原版Windows 98 Second Edition 简体中文版 https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16446&page=1&extra=#pid125031 微软原版Windows Me 简体中文版 https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16448&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版Windows 2000 Professional 简体中文版 https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16447&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版Windows XP Professional SP3 简体中文版 https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16449&page=1&extra=#pid125073微软原版Windows XP Media Center Edition 2005 简体中文版 https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16451&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版Windows XP Tablet PC Edition 2005 简体中文版 https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16450&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版Windows Server 2003 R2 Enterprise Edition SP2 简体中文版(32位) https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16452&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版Windows Server 2003 R2 Enterprise Edition SP2 简体中文版(64位) https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16453&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版Windows Vista 简体中文版(32位) https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16454&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版Windows Vista 简体中文版(64位) https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16455&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版 Windows7 SP1 各版本下载地址: https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=12387&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版 Windows Server 2008 Datacenter Enterprise and Standard 简体中文版(32位) https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16457&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版 Windows Server 2008 Datacenter Enterprise and Standard 简体中文版(64位) https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16458&highlight=%CE%A2%C8%ED%D4%AD %B0%E6 微软原版 Windows Server 2008 R2 S E D and Web 简体中文版(64位) https://www.wendangku.net/doc/4013443398.html,/viewthread.php?tid=16459&highlight=%CE%A2%C8%ED%D4%AD %B0%E6

windows正版系统+正版密钥

精心整理正版Windows系统下载+正版密钥 2010-05-3011:49 喜欢正版Windows系统 这是我收集N天后的成果,正版的Windows系统真的很好用,支持正版!大家可以用激活工 具激活!现将本收集的下载地址发布出来,希望大家多多支持! Windows98第二版(简体中文) 安装序列号:Q99JQ-HVJYX-PGYCY-68GM3-WXT68 安装序列号:Q4G74-6RX2W-MWJVB-HPXHX-HBBXJ 安装序列号:QY7TT-VJ7VG-7QPHY-QXHD3-B838Q WindowsMillenniumEdition(WindowME)(简体中文) 安装序列号:HJPFQ-KXW9C-D7BRJ-JCGB7-Q2DRJ 安装序列号:B6BYC-6T7C3-4PXRW-2XKWB-GYV33 安装序列号:K9KDJ-3XPXY-92WFW-9Q26K-MVRK8 Windows2000PROSP4(简体中文) SerialNumber:XPwithsp3VOL微软原版(简体中文) 文件名:zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso 大小:字节 MD5:D142469D0C3953D8E4A6A490A58052EF52837F0F CRC32:FFFFFFFF 邮寄日期(UTC):5/2/200812:05:18XPprowithsp3VOL微软原版(简体中文)正版密钥: MRX3F-47B9T-2487J-KWKMF-RPWBY(工行版)(强推此号!!!) QC986-27D34-6M3TY-JJXP9-TBGMD(台湾交大学生版) QHYXK-JCJRX-XXY8Y-2KX2X-CCXGD(广州政府版)

微软系统软件正版化工作学习手册全解

软件正版化工作学习手册

操作系统软件正版化常见问题 现在市面上大部分机操作系统使用的都是美国微软公司的系列操作系统,这里主要说明的是系列操作系统的正版化常见问题。 目前机操作系统软件产品常见有三种授权方式,分别为预装授权()、零售版协议、开放式许可协议授权。 (一)预装授权()的定义 预装授权()是随机版产品,随电脑系统,由电脑及服务器生产厂商、装机商、翻新商或者计算机系统软件预装商预装于电脑中,同电脑一起销售给客户。用户将同时获得随机提供的正版标签()。 预装授权()与安装的计算机主板绑定,安装激活后不可移机使用。预装授权()在同一台计算机上(绑定主板,硬盘、内存、等可以升级更换)不限制激活次数(信息由微软客服电话800-820-3800激活中心提供),可以反复安装激活。 附注1::,中文名称:正版标签。(详见附图一) 附注2:预装类产品()必须与一同购买,不能用于已购正版化。如果购买预装类产品()用于对已购版正版化,将被视为错误许可。 图1: 7 版操作系统正版标签 (二)预装授权()的使用要点和鉴定方法 1、机身上带有正版标签()。品牌机大多都在出厂时就预装了操作系统。

鉴定品牌机是否携带了正版的操作系统,只能通过计算机是否携带了正版标签()来辨别,正版标签()一般黏贴在主机机箱一侧,没有黏贴正版标签()的,都需要找经销商确认该机器是否具有预装授权()。 2、正版标签()的正版验证除了查看防伪金属条和材质外,还可以到微软网站上验证,验证的网址为 也可以通过电话验证,电话号码为 座机:8008203800;手机:4008203800 3、正版标签()的版本为家庭()版操作系统的,视为错误授权,需更换授权。具体原因有二,一是家庭版许可的使用范围中,并不包括部门,如在部门使用该授权,视为错误授权;二是安全问题,家庭版在安全性上与其他版本相比,存在欠缺,不适合在部门使用。 4、预装授权()的正版标签()上,标识有厂家信息,系统版本和序列号三个主要信息。机安装系统的属性所显示的信息必须和正版标签()上的厂家信息、系统版本和序列号一一对应。厂家信息处注明的是、版本为授权,是可以降级到的版本使用。版本信息可通过右键点击系统“计算机”-“属性”查看,版本信息如下图: 图2:操作系统版本信息

windows系统官网原版下载

微软MSDN官方(简体)中文操作系统全下载 这不知是哪位大侠收集的,太全了,从DOS到Windows,从小型系统到大型系统,从桌面系统到专用服务器系统,从最初的Windows3.1到目前的Windows8,以及Windows2008,从16位到32位,再到64位系统,应有尽有。全部提供微软官方的校验文件,这些文件都可以在微软官方MSDN订阅中得到验证,完全正确! 下载链接电驴下载,可以使用用迅雷下载,建议还是使用电驴下载。你可以根据需要在下载链接那里找到你需要的文件进行下载!太强大了!!! 产品名称: Windows 3.1 (16-bit) 名称: Windows 3.1 (Simplified Chinese) 文件名: SC_Windows31.exe 文件大小: 8,472,384 SHA1: 65BC761CEFFD6280DA3F7677D6F3DDA2BAEC1E19 邮寄日期(UTC): 2001-03-06 19:19:00 ed2k://|file|SC_Windows31.exe|8472384|84037137FFF3932707F286EC852F2ABC|/ 产品名称: Windows 3.2 (16-bit) 名称: Windows 3.2.12 (Simplified Chinese) 文件名: SC_Windows32_12.exe 文件大小: 12,832,984 SHA1: 1D91AC9EB3CBC1F9C409CF891415BB71E8F594F7 邮寄日期(UTC): 2001-03-06 19:21:00 ed2k://|file|SC_Windows32_12.exe|12832984|A76EB68E35CD62F8B40ECD3E6F5E213F|/ 产品名称: Windows 3.2 (16-bit) 名称: Windows 3.2.144 (Simplified Chinese) 文件名: SC_Windows32_144.exe 文件大小: 12,835,440 SHA1: 363C2A9B8CAA2CC6798DAA80CC9217EF237FDD10 邮寄日期(UTC): 2001-03-06 19:21:00 ed2k://|file|SC_Windows32_144.exe|12835440|782F5AF8A1405D518C181F057FCC4287|/ 产品名称: Windows 98 名称: Windows 98 Second Edition (Simplified Chinese) 文件名: SC_WIN98SE.exe 文件大小: 278,540,368 SHA1: 9014AC7B67FC7697DEA597846F980DB9B3C43CD4 邮寄日期(UTC): 1999-11-04 00:45:00 ed2k://|file|SC_WIN98SE.exe|278540368|939909E688963174901F822123E55F7E|/ 产品名称: Windows Me 名称: Windows? Millennium Edition (Simplified Chinese) 文件名: SC_WINME.exe

WCF服务编程

序 序 (1) 前言 (8) 第1章WCF基础 (13) 什么是WCF (14) 服务 (15) 服务的执行边界 (16) WCF与位置透明度 (17) 地址 (18) TCP地址 (19) HTTP地址 (20) IPC地址 (20) MSMQ地址 (20) 对等网地址 (21) 契约 (21) 服务契约(Service Contract) (21) 数据契约(Data Contract) (21) 错误契约(Fault Contract) (22) 消息契约(Message Contract) (22) 服务契约 (22) 应用ServiceContract特性 (25)

名称与命名空间 (28) 托管 (30) IIS托管 (30) 使用Visual Studio 2005 (31) Web.Config文件 (32) 自托管 (32) 使用Visual Studio 2005 (35) 自托管与基地址 (35) 托管的高级特性 (38) ServiceHost类 (39) WAS托管 (41) 绑定 (41) 标准绑定 (42) 基本绑定(Basic Binding) (43) TCP绑定 (43) 对等网绑定 (43) IPC绑定 (43) WS联邦绑定(Federated WS Binding) (44) WS双向绑定(Duplex WS Binding) (44) MSMQ绑定 (44) 格式与编码 (44) 选择绑定 (45)

使用绑定 (47) 终结点 (47) 管理方式配置终结点 (48) 绑定配置 (52) 编程方式配置终结点 (53) 绑定配置 (56) 元数据交换 (56) 编程方式启用元数据交换 (59) 元数据交换终结点 (62) 编程方式添加MEX终结点 (64) 简化ServiceHost类 (65) 元数据浏览器 (71) 客户端编程 (71) 生成代理 (72) 管理方式配置客户端 (76) 绑定配置 (78) 生成客户端配置文件 (78) 进程内托管配置 (79) SvcConfigEditor编辑器 (80) 创建和使用代理 (81) 关闭代理 (82) 调用超时 (84)

公司电脑操作系统及软件正版化实施方案.doc

v1.0可编辑可修改公司电脑操作系统及软件正版化实施方案 序言 从公司长远地发展战略角度考虑,逐步完善电脑操作系统及软件的正版化,并建立合法的信息化系统,符合公司未来发展的需要,也是必然性;因此,根据公司目前的规模,电脑操作 系统及软件使用情况,制定以下方案: 1、统计、分析、整理公司常用系统和软件,根据使用频率建议替代的免费的正版系统和软 件; 使用授权替代的操作系统 在用操作系统及软件主要功能作用 频率方式或软件 微软系统的易用性、兼容 管理电脑硬件与 微软 windows7 系统性、实用性、操作难度等 软件资源的程序,必备付费 微软 windows XP 系统等,建议购买付费正版授 电脑组成的核心 权 微软 excel数据、表格、账目 金山wps office 微软 word文字处理必备付费 ( 免费正版授权 ) 微软 PowerPoint幻灯片 Adobe Acrobat Pdf 文档阅读、编AdobeAcrobatReader 必备付费 Professional辑工具( 免费正版授权) 备注 后续购置的新机建议采购品牌机,品牌机自带 OEM 正版操作系统; 正版只有只 读功能,需要编辑的文档 转换为其它 格式,修改好再转为 PDF 格式 Winrar解压、打包工具必备付费360 压缩

v1.0可编辑可修改 (免费正版授权) 工 4 用户表示只平面工程制图,计建议购买4用户的网络版 Autocad2010程允许4个程 算机辅助设计版本 部付费序同时在线 必 Solidworks20143D设计软件备建议购2套单机版 EIS 天锐绿盾文件保密程序必备免费无需替代 腾讯 QQ 即时通信软件必备免费无需替代 搜狗拼音、 QQ五笔输入法必备免费无需替代 有道词典、金山词霸翻译软件常用免费无需替代 阿里旺旺、 skype 即时通信软件常用免费无需替代 Foxmail 邮件收发客户端必备免费无需替代 2、目前公司在用电脑53 台(不含精加、线束车间),行政部将在发出通知后,逐一卸载未 经授权的操作系统及应用软件,并安装与之相关的替代软件;后续将对所有电脑进行严格地 软件管理,未经行政部允许,任何人不得私自安装未经授权的操作系统及软件,因此而对公 司造成的损失将由当事人一律承担; 3、新增软件安装流程 用户填写《重要事项请办单/ 内外部联络单》经由本部门主管签核 网管根据规定安装相关正版授权的应用程序软件经由行政部经理核准同意

WCF实例

8.2Hello, World实例 本实例与传统入门教材相同,仍然以输出一个“Hello,World”字符串开始。实例将新建2个项目,第一个项目名为“HelloWorldService”,它提供WCF服务,并且以开发环境方式暴露一个端口供客户端调用;另外一个项目叫“HelloWorldClient”,它调用WCF服务方法,并输出返回值。 本实例的运行结果如图所示: 8.2.1创建WCF服务端程序 1)打开Microsoft Visual Studio 2010; 2)选择菜单>文件>新建>项目; 3)在弹出的“新建项目”对话框中展开左边的“已安装的模板”>Visual C#; 4)选择“WCF”; 5)在对话框右边选择“WCF Service Application“; 6)在对话框下部的“项目名“中输入”HelloWorldService“,在位置中输入” d:\Exercise “,在解决方案名称输入”WcfSample“,确保选中”Create directory for solution “,确保未选中”Add to source control“,设置后的界面如下:

7)点击“OK“按钮,VS2010已自动建立了一个WCF Service Application,并且为我们自动打开了Service1.svc.cs文件; 8)打开“Solution Explorer”;(VS2010默认打开,位置在VS2010桌面的右边,如果VS2010没有打开,请使用快捷键Ctrl + W,S打开) 9)在“Solution Explorer”中展开“HelloWorldService”; 10)双击“IService1.cs”文件; 11)用下面的代码 ///

/// 提供一个WCF服务方法 /// /// 返回“Hello, World!” [OperationContract] //声明为“OperationContract”的方法将暴露在WCF服务器上 string GetHelloWorld(); 替换第22行的注释 // TODO: Add your service operations here 知识点: “ServiceContract”代表服务契约,表示IService1接口是一个WCF服务,这样,客户端就可以访问这个接口和它内部有效的方法了。 “OperationContract”代表操作契约,表示GetHelloWorld方法是服务契约中的一个方法,只有声明为“OperationContract”的方法才会被公开在WCF服务中。如果服务中没有任何一个方法声明为“OperationContract”,那么这个服务将没有任何意义。

Windows7官方个版本正版镜像下载地址

Windows7官方个版本正版镜像下载地址 简体中文旗舰版: 32位:下载地址:ed2k://|file|cn_windows_7_ultimate_x86_dvd_x15-65907.iso|2604238848|D6F139D7A45E81B 76199DDCCDDC4B509|/ SHA1:B589336602E3B7E134E222ED47FC94938B04354F 64位:下载地址:ed2k://|file|cn_windows_7_ultimate_x64_dvd_x15-66043.iso|3341268992|7DD7FA757CE6D2D B78B6901F81A6907A|/ SHA1:4A98A2F1ED794425674D04A37B70B9763522B0D4 简体中文专业版: 32位:下载地址:ed2k://|file|cn_windows_7_professional_x86_dvd_x15-65790.iso|2604238848|e812fbe758f 05b485c5a858c22060785|h=S5RNBL5JL5NRC3YMLDWIO75YY3UP4ET5|/ SHA1:EBD595C3099CCF57C6FF53810F73339835CFBB9D 64位:下载地址:ed2k://|file|cn_windows_7_professional_x64_dvd_x15-65791.iso|3341268992|3474800521d 169fbf3f5e527cd835156|h=TIYH37L3PBVMNCLT2EX5CSSEGXY6M47W|/ SHA1:5669A51195CD79D73CD18161D51E7E8D43DF53D1 简体中文家庭高级版: 32位:下载地址:ed2k://|file|cn_windows_7_home_premium_x86_dvd_x15-65717.iso|2604238848|98e1eb474f9 2343b06737f227665df1c|h=GZ7FZE7XURI5HNO2L7H45AGWNOLRLRUR|/ SHA1:CBA410DB30FA1561F874E1CC155E575F4A836B37 64位:下载地址:ed2k://|file|cn_windows_7_home_premium_x64_dvd_x15-65718.iso|3341268992|9f976045631 a6a2162abe32fc77c8acc|h=QQZ3UEERJOWWUEXOFTTLWD4JNL4YDLC6|/ SHA1:5566AB6F40B0689702F02DE15804BEB32832D6A6 简体中文企业版: 32位:下载地址:ed2k://|file|cn_windows_7_enterprise_x86_dvd_x15-70737.iso|2465783808|41ABFA74E5735 3B2F35BC33E56BD5202|/ SHA1:50F2900D293C8DF63A9D23125AFEEA7662FF9E54 64位:下载地址:ed2k://|file|cn_windows_7_enterprise_x64_dvd_x15-70741.iso|3203516416|876DCF115C2EE 28D74B178BE1A84AB3B|/ SHA1:EE20DAF2CDEDD71C374E241340DEB651728A69C4

七步通使用WCF Service流程

七步通使用WCF Service流程 Service对于编程人来说并不陌生,学习了很长时间的WCF,我们现在就WCF Service 一起来和大家分析探讨一下。熟悉Web Service开发的程序员对添加服务引用应该并不陌生。在创建某个服务的客户端程序时,并不需要从头开始编写客户端的底层通信和交互代码,可以通过输入服务地址来添加服务来让Visual Studio生成客户端代理,这样访问服务就像访问本地组件一样,而不需要去关心通信的细节。 如果创建的客户端程序项目和服务程序项目处在同一个解决方案里(很多开发者在开发服务时,也会同步开发客户端程序),还可以通过Visual Studio来帮助我们“发现(Discovery)”服务,并添加服务引用。现在开发WCF Service的程序员也可以得益于这些功能了。如果从WCF Service Library (或者WCF 节点下的Sequential Workflow Service Library 和 State Machine Workflow) 项目模板创建一个项目,那么这些功能就已经具备。 下面我们来看一下如何使用: 1.创建一个客户端程序,可以是一个Windows Console程序。 2.在同一解决方案里添加一个WCF Service Library。如图: 3.Build WcfServiceLibrary1。 4.右键ConsoleApplication1,在上下文菜单中选择“添加服务引用“(Add Service Reference). 5.此时可以看到一个对话框:

6.如果已经知道服务的地址,可以直接在Address栏输入地址来添加服务,单击“Go”。可以找到这个地址对应的服务。 7.如果想添加同一个解决方案里的服务,可以先单击“发现”来寻找服务。找到服务后,选中需要在客户端程序生成引用的服务,然后单击确定,这个时候WcfSvcHost就会自动启动来HOST服务。几秒以后,可以看到客户端自动生成了服务代理代码: 通过上面的步骤在客户端完成了添加服务引用,现在可以访问服务了,只需要通过下面两行代码就可以调用服务端的一个方法: 1.ServiceReference1.Service1Client client = new ServiceReference1.Serv ice1Client(); 2.client.GetData(0);

Win7下使用IIS托管WCF服务

Win7下使用IIS托管WCF服务 第一步,确保Win7正确安装了IIS。 操作步骤: 1.打开控制面板-程序和功能-点击左侧“打开或关闭Windows功能”,在弹出框中选中 “Internet信息服务”,需要注意的是有的需要将其展开,选中相关项。 2.在浏览器中输入http://localhost,如果出现了IIS启动界面,即表示IIS安装成功。 第二步,在进行IIS托管WCF服务之前,先建立一个https://www.wendangku.net/doc/4013443398.html,程序试下。 由于Win7+VS2010使用的是.Net 4.0,所以需要确保注册了https://www.wendangku.net/doc/4013443398.html, 4.0。 操作步骤: 1.进入C:\Windows\System32找到cmd.exe,右键“以管理员身份运行”,然后在控制台输 入:cd C:\Windows\https://www.wendangku.net/doc/4013443398.html,\Framework\v4.0.30319切换到该目录 2.然后输入:aspnet_regiis.exe –i,就会看到正在注册,以及注册成功的提示信息。 备注:最好使用控制台来进行https://www.wendangku.net/doc/4013443398.html,的注册,其实也可以直接以管理员身份运行aspnet_regiis.exe,但是会看不到是否成功的提示! 第三步:创建解决方案,并发布https://www.wendangku.net/doc/4013443398.html,网站 操作步骤: 1.创建一个默认的https://www.wendangku.net/doc/4013443398.html,网站,不用更改其中任何东西。 2.在项目上,右键“属性页”,在“启动选项”中的“特定页”和服务器,进行如下设置: 需要注意的是,这时如果你在项目上右键-在浏览器中查看,会发现不能访问。 3.鼠标右键-发布网站,出现如下图所示对话框:

点击“目标位置”进入如图对话框: 选择“文件系统”,即表示你要将你的网站发布到的本地计算机的位置,在第四步建立网站的时候会引用。 备注:由于,我们没有修改代码,应该发布会很顺利。

微软系统软件正版化工作学习手册全解

软件正版化工作 学习手册 操作系统软件正版化常见问题 现在市面上大部分PC机操作系统使用的都是美国微软公司的WINDO WS系列操作系统,这里主要说明的是WINDOWS系列操作系统的正版化常见问题。 目前PC机WINDOWS操作系统软件产品常见有三种授权方式,分别为预装授权(OEM/COEM)、零售版协议、开放式许可协议授权。 (一)预装授权(OEM/COEM)的定义 预装授权(OEM/COEM)是Microsoft 随机版产品,随电脑系统,由电脑及服务器生产厂商、装机商、翻新商或者计算机系统软件预装商预装于电脑中,同电脑一起销售给客户。用户将同时获得随机提供的正版标签(COA)。 预装授权(OEM/COEM)与安装的计算机主板绑定,安装激活后不可移机使用。预装授权(OEM/COEM)在同一台计算机上(绑定主板,硬盘、内存、CPU等可以升级更换)不限制激活次数(信息由微软客服电话800-820-3800激活中心提供),可以反复安装激活. 附注1:COA:Certificate of Authenticity,COA中文名称:正版标签。(详见附图一) 附注2:预装类产品(OEM/COEM)必须与PC一同购买,不能用于已购PC 正版化。如果购买预装类产品(OEM/COEM)用于对已购PC版正版化,将被视为错误许可.

图1: WIN7 PRO版操作系统正版标签 (二)预装授权(OEM/COEM)的使用要点和鉴定方法 1、机身上带有正版标签(COA)。品牌机大多都在出厂时就预装了wind ows操作系统。鉴定品牌机是否携带了正版的windows操作系统,只能通过计算机是否携带了正版标签(COA)来辨别,正版标签(COA)一般黏贴在主机机箱一侧,没有黏贴正版标签(COA)的,都需要找经销商确认该机器是否具有预装授权(OEM/COEM). 2、正版标签(COA)的正版验证除了查看防伪金属条和材质外,还可以到微软网站上验证,验证的网址为 也可以通过电话验证,电话号码为 座机:8008203800;手机:4008203800 3、正版标签(COA)的版本为家庭(HOME)版操作系统的,视为错误授权,需更换授权。具体原因有二,一是家庭版许可的使用范围中,并不包括部门,如在部门使用该授权,视为错误授权;二是安全问题,家庭版在安全性上与其他版本相比,存在欠缺,不适合在部门使用。 4、预装授权(OEM/COEM)的正版标签(COA)上,标识有厂家信息,系统版本和序列号三个主要信息。PC机安装系统的属性所显示的信息必须和正版标签(COA)上的厂家信息、系统版本和序列号一一对应.厂家信息处注明的是LENOVO、版本为VISTA授权,是可以降级到LENOVO的WIN XP版本使用。版本信息可通过右键点击系统“计算机"—“属性"查看,WIN XP版本信息如下图:

如何在windows下安装原版mac系统

windows下安装苹果教程。最详细,最全面,最值得看的教程! 最详细,最适合新手的教程:如何原版安装mac 从windows到mac os(安装黑苹果目前最详细教程) 最近网上有不少如何安装苹果系统的教程,个人感觉都不错,但是有些地方还是不够详细,所以我决定写一个比较详细的教程。鉴于网上有不少类似的教程,所以我的这个安装方法中有不少是借鉴和总结他们的,在此不一一提出,但是对这些作者表示感谢和崇高的敬意。本教程较长,不要因此以为苹果的安装比较复杂,其实我只是让每一步叙述的更加详细,提供更多的方法处理安装,还有就是加入了大量的图片。由于本教程过于详细,所以比较适合新手阅读。 安装之前要做好失败的心理准备,新手建议先备份重要数据到别的机器,预防数据丢失。要有足够的耐心和毅力,敢于不断尝试,不自己实践过永远不知道自己电脑是不是能够成功安装,安装成功后的成就感只有自己知道,另外完成安装过程也是学习电脑知识的过程,祝各位能安装顺利。 以下是详细过程: 安装之前的准备: ################################################### ##################### 硬盘安装原版mac(以10.6.3零售版为例) 以下工具或软件下载地址在4楼和5楼,4楼提供10.6.3零售版115网盘下载,5楼提供帖子中所涉及的大部分软件的115网盘下载,126楼提供本教程的pdf格式的下载

所要准备的软件等: ①原版苹果镜像,推荐Mac.OS.X.10.6.3.Retail.dmg ②推荐bootthink2.4.6版本,另外也可以用变色龙,个人喜欢用bootthink 引导,感觉方便。 ③winPE或者windows原版安装光盘(设置C盘为活动分区用),推荐winPE,winPE的详细制作过程及制作需要的软件(附下载地址)下面有,另外一般的Ghost安装盘上都会有winPE的。 ④硬盘安装助手 ⑤XP必备DiskGenius:硬盘分区工具 (windows7可不用该工具,系统自带磁盘管理) ⑥Mac.OS.X.10.6.3.Retail的替换文件: 替换文件是让苹果系统可以安装在MBR分区上,即windows的分区,有想拿出整块硬盘安装mac的可以不用替换,如何替换看以下的安装过程。不替换的缺点:需要另外找硬盘备份自己硬盘上的所有数据资料,因为硬盘由MBR 分区转变为GPT时会损失所有数据。 ⑦HFS Explorer和Java VM(Java JRE虚拟机),,先安装Java VM (Java JRE虚拟机),才能正常使用HFS Explorer。 ⑧Macdrive或是TransMac,安装了Macdrive可以不用TransMac。 ⑨AMD,intel Atom和Pentium单核的CPU需要准备替换对应的内核 主板不能开启AHCI的还需要补丁i系列的处理器(i3,i5,i7)还需要替换10.3.1以上内核,因为2010年4月

使用WCF实现SOA面向服务编程

作者: 风尘浪子来源: 博客园发布时间: 2011-04-12 11:07 阅读: 3121 次原文链接全屏阅读 [收藏] SOA本身就是一种面向企业级服务的系统架构,简单来说,SOA就是一种进行系统开发的新的体系架构,在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。因此,基于SOA的架构也一定是从企业的具体需求开始构建的。但是,SOA和其它企业架构的不同之处就在于SOA提供的业务灵活性。业务灵活性是指企业能对业务变更快速和有效地进行响应、并且利用业务变更来得到竞争优势的能力。对企业级架构设计师来说,创建一个业务灵活的架构意味着创建一个可以满足当前还未知的业务需求的IT架构。使用WCF实现SOA,正好可以利用WCF的灵活性,把业务层封装,发布为Web服务。这样可以降低系统的耦合度,加大对未知业务的扩展性。

Web服务本来就是没有区分代码的,在这个例子里在下多开发了一个Service Interface目的是为了使系统更易于管理。在开发期间,Service是不断更改的,如果在UI层上直接调用服务层,那更改将会是频密的,所以在这里在下开发一个Service Interface层目的是为了把WSDL集成在同一个DLL程序集里面,进行统一修改。最后UI层只要直接调用Service Interface,就可以对系统直接进行操作。要以不同开发工具来实现Service Interface,这个的代价并不大,开销是可以承担的。下面附上最简单的例子,希望有经验的高手给予点评,有不妥的地方请多加指教。

WCF服务如何获取客户端在线用户

本文和大家讲下WCF服务如何获取客户端在线用户数量?你没有关注过这个问题吧,一起来看下本文的实现方法。【1】问题分析: 这个问题,在WCF服务编程中也非常的常见,以下是对于这个问题的不同描述形式,但是本质基本类似:WCF如何获取在线客户端数量? WCF如何获取在线用户列表? WCF服务如何知道客户端离线? 如何判断WCF离线客户端? 或许还有别的提法,但是基本都是差不多的。 此类问题出现在回调、双工通信的场景中比较多,有的程序具备类似聊天室的功能,就比较在乎客户端的离线事件。 【2】解决办法: 这里服务端对于客户端在线的判断,也是固定的,基本是基于对通道状态的判断,来实现对于客户端在线状态的判断。 实现的思路基本就是,在服务端维护一个在线客户端Channel的列表List,然后每次通道关闭(Closed)或者出错(Faulted)调用特定的方法来移调通道。 这里另外一个需要注意的地方就是多线程并发的问题。 因为在线用户通道list是一个静态变量,多线程访问的时候,需要注意互斥操作的问题。 【3】示例代码: 这里的代码页比较简单,基本思路: //回调通道列表,也可以用来保持 private static List channelsList = new List(); private static Object thisLock = new Object(); 另外服务默认的是PerSession实例模式,对于单个客户端Proxy实例只有一个服务。 【3.1】服务端: 这里最重要的就是一个绑定一个方法给Closed事件, OperationContext.Current.Channel.Closed += new EventHandler(ShowOffLine); 全部的代码如下: Code [https://www.wendangku.net/doc/4013443398.html,]using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ServiceModel; using System.ServiceModel.Description; using System.Runtime.Serialization; using System.Threading; //ServiceContract 属性以及Indigo 使用的所有其他属性均在System.ServiceModel 命名空间中定义, //因此本例开头使用using 语句来引用该命名空间。 namespace WCFService { //1.回调服务契约,由于回调方法在客户端执行,因此无须添加ServiceContractAttribute。对于回调操作,服务器无须获取其返回信息,因此添加IsOneWay=true 特性参数。 public interface IWCFServiceCallBack { //操作契约 [OperationContract(IsOneWay=true)]// void SayHelloCalllBack(); } //2.服务契约,指定CallbackContract 回调契约。 [ServiceContract(CallbackContract = typeof(IWCFServiceCallBack))]

相关文档
相关文档 最新文档