Windows Communication Foundation (WCF) 的强大功能在很大程度上归功于其高度可配置的特性,而这一切的核心便是其配置文件(通常是
Web.config
或
App.config
),配置文件将服务的定义、行为和网络细节与业务逻辑代码分离,为开发者提供了无与伦比的灵活性和可维护性,通过修改XML配置,无需重新编译代码即可调整服务的地址、绑定、契约及其他运行时行为,使其能够轻松适应不同的部署环境。
配置文件的核心结构
WCF的所有配置都包含在节点下,这个节点是整个WCF配置世界的入口,它主要由四个关键部分组成:、、和,对于服务端而言,前三者尤为重要。
服务定义
这是配置文件的心脏,用于定义一个或多个WCF服务,每个元素都代表一个具体的服务类,并包含一个或多个元素,端点是服务与外界通信的窗口,其定义遵循经典的“ABC”法则:
| 绑定类型 | 描述 | 典型场景 |
|---|---|---|
basicHttpBinding
|
符合WS-BasicProfile 1.1规范,兼容性广。 | 与旧的ASMX Web服务或跨平台客户端交互。 |
wsHttpBinding
|
支持更高级的Web服务标准,如WS-Security, WS-ReliableMessaging。 | .NET平台间企业级安全通信。 |
netTcpBinding
|
高性能的跨进程或跨机器通信,使用TCP协议。 | Intranet环境下的内部系统通信。 |
webHttpBinding
|
用于创建RESTful风格的服务。 | 面向Web的、轻量级的API服务。 |
绑定配置
此部分允许对在端点中使用的绑定进行精细化定制,你可以修改
wsHttpBinding
的安全模式,或调整
basicHttpBinding
的最大接收消息大小,以满足特定的性能或安全需求。
行为配置
行为定义了服务在运行时的特性,它分为服务行为和端点行为,最常见的服务行为是,它用于控制是否发布服务的元数据(WSDL),这对于客户端生成代理类至关重要,另一个有用的行为是,它可以配置是否在错误信息中包含异常详情,便于开发阶段调试。
一个典型的配置示例
下面是一个简洁的配置文件片段,它定义了一个服务,启用了元数据交换,并指定了一个HTTP端点。
在这个例子中,服务通过
basicHttpBinding
暴露了
IMyService
契约。
behaviorConfiguration
属性将其与下面的
MyServiceBehavior
关联起来,该行为启用了HTTP GET元数据发布,使得客户端可以通过浏览器或“添加服务引用”功能发现该服务。
配置文件的优势
WCF配置文件是构建健壮、灵活且易于管理的分布式系统的基石,深入理解并熟练运用其各个组成部分,是每一位WCF开发者的必备技能。
相关问答 (FAQs)
问题1:除了使用配置文件,我可以在代码中配置WCF服务吗?
解答:
是的,完全可以,WCF提供了丰富的编程式配置API,你可以在代码中创建
ServiceHost
实例,并通过其
AddServiceEndpoint
方法动态添加端点,同时也可以直接在代码中创建和配置绑定与行为,这种方式将配置信息硬编码到了程序集中,失去了配置文件带来的灵活性,编程式配置适用于配置信息非常固定且简单的场景,或者在需要根据某些运行时条件动态决定配置的复杂逻辑中,对于绝大多数企业应用,使用配置文件仍然是最佳实践。
问题2:为什么我无法通过“添加服务引用”来发现我的WCF服务?通常是什么原因导致的?
解答: 这是最常见的WCF入门问题之一,根本原因几乎总是服务没有发布其元数据,客户端(如Visual Studio的“添加服务引用”向导)需要访问服务的WSDL文档来了解其地址、绑定和契约,从而生成代理类,要解决这个问题,你必须在服务的配置文件中:
系统配置实用程序中有那些服务用启动和有那些服务要禁用,那位有详细简明的答案
服务其实是Win 2000/XP/2003中一种特殊的应用程序类型,不过它是在后台运行,所以我们在任务管理器看不到它。 安装Win XP后,通常系统会默认启动许多服务,其中有些服务是普通用户根本用不到的,不但占用系统资源,还有可能被黑客所利用。 查看正在启用的服务项目以Win XP为例,首先你要使用系统管理员账户或以拥有Administrator权限的用户身份登录,然后在“运行”中输入“”打开命令行窗口,再输入“net start”回车后,就会显示出系统正在运行的服务为了更详细地查看各项服务的信息,我们可以在“开始→控制面板→管理工具”中双击“服务”,或者直接在“运行”中输入“”打开服务设置窗口关闭、禁止与重新启用服务服务分为三种启动类型:1.自动:如果一些无用服务被设置为自动,它就会随机器一起启动,这样会延长系统启动时间。 通常与系统有紧密关联的服务才必须设置为自动。 2.手动:只有在需要它的时候,才会被启动。 3.已禁用:表示这种服务将不再启动,即使是在需要它时,也不会被启动,除非修改为上面两种类型。 如果我们要关闭正在运行的服务,只要选中它,然后在右键菜单中选择“停止”即可。 但是下次启动机器时,它还可能自动或手动运行。 如果服务项目确实无用,可以选择禁止服务。 在右键菜单中选择“属性”,然后在“常规→启动类型”列表中选择“已禁用”,这项服务就会被彻底禁用。 如果以后需要重新起用它,只要在此选择“自动”或“手动”即可;也可以通过命令行“net start 服务名”来启动,比如“net start Clipbook”。 必须禁止的服务 Remote Desktop Sharing:允许受权的用户通过NetMeeting在网络上互相访问对方。 这项服务对大多数个人用户并没有多大用处,况且服务的开启还会带来安全问题,因为上网时该服务会把用户名以明文形式发送到连接它的客户端,黑客的嗅探程序很容易就能探测到这些账户信息。 Plug and Play Device Host:此服务是为通用的即插即用设备提供支持。 这项服务存在一个安全漏洞,运行此服务的计算机很容易受到攻击。 攻击者只要向某个拥有多台Win XP系统的网络发送一个虚假的UDP包,就可能会造成这些Win XP主机对指定的主机进行攻击(DDoS)。 另外如果向该系统1900端口发送一个UDP包,令“本地”域的地址指向另一系统的chargen端口,就有可能使系统陷入一个死循环,消耗掉系统的所有资源(需要安装硬件时需手动开启)。 :俗称信使服务,电脑用户在局域网内可以利用它进行资料交换(传输客户端和服务器之间的Net Send和Alerter服务消息,此服务与Windows Messenger无关。 如果服务停止,Alerter消息不会被传输)。 这是一个危险而讨厌的服务,Messenger服务基本上是用在企业的网络管理上,但是垃圾邮件和垃圾广告厂商,也经常利用该服务发布弹出式广告,标题为“信使服务”。 而且这项服务有漏洞,MSBlast和Slammer病毒就是用它来进行快速传播的。 Services:允许多位用户连接并控制一台机器,并且在远程计算机上显示桌面和应用程序。 如果你不使用Win XP的远程控制功能,可以禁止它。 Registry:使远程用户能修改此计算机上的注册表设置。 注册表可以说是系统的核心内容,一般用户都不建议自行更改,更何况要让别人远程修改,所以这项服务是极其危险的。 User Switching Compatibility:在多用户下为需要协助的应用程序提供管理。 Windows XP允许在一台电脑上进行多用户之间的快速切换,但是这项功能有个漏洞,当你点击“开始→注销→快速切换”,在传统登录方式下重复输入一个用户名进行登录时,系统会认为是暴力破解,而锁定所有非管理员账户。 如果不经常使用,可以禁止该服务。 或者在“控制面板→用户账户→更改用户登录或注销方式”中取消“使用快速用户切换”。 :允许远程用户登录到此计算机并运行程序,并支持多种 TCP/IP Telnet客户,包括基于 UNIX 和 Windows 的计算机。 又一个危险的服务,如果启动,远程用户就可以登录、访问本地的程序,甚至可以用它来修改你的ADSL Modem等的网络设置。 除非你是网络专业人员或电脑不作为服务器使用,否则一定要禁止它。 Logs And Alerts:收集本地或远程计算机基于预先配置的日程参数的性能数据,然后将此数据写入日志或触发警报。 为了防止被远程计算机搜索数据,坚决禁止它。 Desktop Help Session Manager:如果此服务被终止,远程协助将不可用。 /IP NetBIOS Helper:NetBIOS在Win 9X下就经常有人用它来进行攻击,对于不需要文件和打印共享的用户,此项也可以禁用。 可以禁止的服务以上十项服务是对安全威胁较大的服务,普通用户一定要禁用它。 另外还有一些普通用户可以按需求禁止的服务:通知所选用户和计算机有关系统管理级警报。 如果你未连上局域网且不需要管理警报,则可将其禁止。 Service:本地和远程计算机上文件的索引内容和属性,提供文件快速访问。 这项服务对个人用户没有多大用处。 Layer Gateway Service:为Internet连接共享和Internet连接防火墙提供第三方协议插件的支持。 如果你没有启用Internet连接共享或Windows XP的内置防火墙,可以禁止该服务。 Power Supply:管理连接到计算机的不间断电源,没有安装UPS的用户可以禁用。 Spooler:将文件加载到内存中以便稍后打印。 如果没装打印机,可以禁用。 Card:管理计算机对智能卡的读取访问。 基本上用不上,可以禁用。 Discovery Service:启动家庭网络上的upnp设备自动发现。 具有upnp的设备还不多,对于我们来说这个服务是没有用的。 更新s:自动从Windows 更新网络更新补丁。 利用Windows 更新功能进行升级,速度太慢,建议大家通过多线程下载工具下载补丁到本地硬盘后,再进行升级。 :启用“剪贴板查看器”储存信息并与远程计算机共享。 如果不想与远程计算机进行信息共享,就可以禁止。 Cd-burning Com Service:用Imapi管理CD录制,虽然Win XP中内置了此功能,但是我们大多会选择专业刻录软件,另外如果没有安装刻录机的话,也可以禁止该服务。 :创建和维护到远程服务的客户端网络连接。 如果服务停止,这些连接都将不可用。 Reporting Service:服务和应用程序在非标准环境下运行时,允许错误报告。 如果你不是专业人员,这个错误报告对你来说根本没用。 再就是如下几种服务对普通用户而言也没有什么作用,大家可以自己决定取舍,如:Routing and Remote Access、Net Logon、Network DDE和Network DDE DSDM。
windows更新后桌面图标有黑影怎么都去不了
首先查杀下病毒、木马,看看是不是这些在作怪。 如果不是那就看优化了。 如果版主不愿重装和升级硬件的话,那么就尽量在软件和系统上下功夫,而在优化上,比较有名的是优化大师和超级兔子版主可以试试。 1、不要加载太多随机启动程序 (提高开机速度必须做的)不要在开机时载入太多不必要的随机启动程序。 选择“开始→程序→附件→系统工具→系统信息→系统信息对话框”,然后,选择“工具→系统配置实用程序→启动”,只需要ctfmon杀毒、查木马的程序前打上钩,其他项都可以不需要,选中后确定重起即可。 (笔记本还须在笔记本程序上打钩) 2、不要轻易使用背景 不要使用ActiveDesktop,否则系统运行速度会因此减慢(右击屏幕→寻显示器属性→Web标签→将其中关于“活动桌面”和“频道”的选项全部取消)。 3、设置虚拟内存 自己设定虚拟内存为机器内存的3倍,例如:有32M的内存就设虚拟内存为96M,且最大值和最小值都一样(此设定可通过“控制面板→系统→性能→虚拟内存”来设置)。 4、一些优化设置 a、到控制面板中,选择“系统→性能→ 文件系统”。 将硬盘标签的“计算机主要用途”改为网络服务器,“预读式优化调到全速。 b、将“软盘”标签中“每次启动就搜寻新的软驱”取消。 c、CD-ROM中的“追加高速缓存”调至最大,访问方式选四倍速或更快的CD-ROM。 5、定期对系统进行整理 定期使用下列工具:磁盘扫描、磁盘清理、碎片整理、系统文件检查器(ASD)6.取消不必要的服务。 Windows XP调用了许多用户可能根本用不到的服务,这些服务不仅影响运行速度,对保护系统安全也非常不利。 因此,可以根据需要禁用不必要的系统服务。 方法 :选择开始菜单里的运行,输入打开服务管理控制台,通过更改服务的启动类型启动或停止该项服务。 7.如果感觉Windows的单窗口浏览器速度比较慢,可以加以改进,方法是 :打开我的电脑,点击工具->文件夹选项->查看,选中使用独立的进程打开文件夹窗口。 这样可以防止一个较慢的设备影响用户界面的响应速度。
windows7 32位系统
Windows7有虚拟机在文件上点右键→兼容性疑难解答 它会给你找出合适的版本,希望能帮到你!














发表评论