当前位置: 首页 > 编程日记 > 正文

WCF配置文件全攻略

ContractedBlock.gifExpandedBlockStart.gifCode
<?xml version="1.0" encoding="utf-8" ?>

<configuration>

     
<system.ServiceModel>

         
<!-- services 元素包含应用中驻留的所有service的配置要求 -->

         
<services>

              
<!-- 每个服务的配置

             属性说明: 

             name 
- 指定这个service配置是针对的那个服务,为一个实现了某些Contract的服务类的完全限定名

                   (名称空间.类型名),ServiceHost载入一个服务后,会到配置文件中的
<services>下找有没有

                   name属性跟服务匹配的
<service>的配置 

             behaviorConfiguration 
- 指定在<serviceBehaviors>下的一个<behavior>的name,这个特定<behavior>

                                     给这个service制定了一些行为,比如服务是否允许身份模拟
-->

              
<service name="名称空间.类型名" behaviorConfiguration="behavior名">

                   
<host>

                       
<baseAddresses>

                            
<!-- 在此可以定义每种传输协议的baseAddress,用于跟使用同样传输协议Endpoint定义的相对地

                    址组成完整的地址,但是每种传输协议只能定义一个baseAddress。HTTP的baseAddress同时是service

                    对外发布服务说明页面的URL
-->

                            
<add baseAddress="http://address" />

                       
</baseAddresses>

                       
<timeouts></timeouts>

                   
</host>

                   
<!-- 每个服务可以有多个Endpoint,下面<endpoint>元素对每个Endpoint分别进行配置

                 属性说明: 

                 address 
- 指定这个Endpoint对外的URI,这个URI可以是个绝对地址,也可以是个相对于baseAddress的

                           相对地址。如果此属性为空,则这个Endpoint的地址就是baseAddress

                 binding 
- 指定这个Endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,

                           比如是basicHttpBinding,也可以是自定义的customBinding。binding决定了通讯的类型、

                           安全、如何编码、是否基于session、是否基于事务等等

                 contract 
- 指定这个Endpoint对应的Contract的全限定名(名称空间.类型名),这个Contract应该被

                            service元素的name指定的那个service实现 

                 bindingConfiguration 
- 指定一个binding的配置名称,跟<bindings>下面同类<binding>的name匹配

                    behaviorConfiguration 
- 指定这个endpoint的behavior,指向<behaviors>下的同样配置名称的<endpointBehaviors>

                 name 
- Endpoint的名称,可选属性,每个Contract都可以有多个Endpoint,但是每个Contract对应的

                        多个Endpoint名必须是唯一的
-->

                   
<endpoint address="URI" binding="basicHttpBinding" contract="Contract全限定名" bindingConfiguration="binding名" behaviorConfiguration="String" name="">

                       
<!-- 用户定义的xml元素集合,一般用作SOAP的header内容-->

                       
<headers>

                            
<!-- 任何xml内容 -->

                       
</headers>

                   
</endpoint>

              
</service>

         
</services>

 

         
<bindings>

              
<!-- 指定一个或多个系统预定义的binding,比如<basicHttpBinding>,当然也可以指定自定义的customBinding,

             然后在某个指定的binding下建立一个或多个配置,以便被Endpoint来使用这些配置 
-->

              
<basicHttpBinding>

                   
<!-- 某一类的binding的下面可能有多个配置,binding元素的name属性标识某个binding-->

                   
<binding name="binding名">

                   
</binding>

              
</basicHttpBinding>

         
</bindings>

         
<!-- 定义service和Endpiont行为-->

         
<behaviors>

              
<!-- 定义service的行为-->

              
<serviceBehaviors>

                   
<!-- 一个或多个系统提供的或定制的behavior元素

                 属性说明:

                 name 
- 一个behavior唯一标识,<service>元素下<endpoint>的behaviorConfiguration属性指向这个name-->

                   
<behavior name="此Behavior名称">

                       
<!-- 指定service元数据发布和相关信息

                     属性说明:

                     httpGetEnabled 
- bool类型的值,表示是否允许通过HTTP的get方法获取sevice的WSDL元数据

                     httpGetUrl 
- 如果httpGetEnabled为true,这个属性指示使用哪个URL地址发布服务的WSDL,

                                  如果这个属性没有设置,则使用服务的HTTP类型的baseAddress后面加上
?WSDL-->

                       
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://URI:port/address" />

                       
<!--指定验证服务端的凭据-->

                       
<serviceCredentials>

                            
<!--指定服务端的证书

                         属性说明:

                         storeName 
- 证书的存储区,可能值为:AddressBook,AuthRoot,CertificateAuthority

                                     Disallowed,My,Root,TrustedPeople,TrustedPublisher

                         storeLocation 
- 证书存储位置,可能值为:CurrentUser,LocalMachine

                             x509FindType 
- 查找证书的方式,可能的值:FindBySubjectName,FindByThumbPrint,FindByIssuerName

                             findValue 
- 对应查找方式的要查找证书的值                  -->

                            
<serviceCertificate storeName="存储区" storeLocation="存储位置" x509FindType="FindBySubjectName" findValue="server1" />

                       
</serviceCredentials>

 

                   
</behavior>

              
</serviceBehaviors>

              
<!-- 定义Endpiont的行为-->

              
<endpointBehaviors>

                   
<!-- 一个或多个系统提供的或定制的behavior元素

                 属性说明:

                 name 
- 一个behavior唯一标识,<client>元素下<endpoint>的behaviorConfiguration属性指向这个name-->

                   
<behavior name="此Behavior名称">

                       
<!--指定客户端的凭据-->

                       
<clientCredentials>

                            
<!--指定客户端的证书

                         属性说明:

                         storeName 
- 证书的存储区,可能值为:AddressBook,AuthRoot,CertificateAuthority

                                     Disallowed,My,Root,TrustedPeople,TrustedPublisher

                         storeLocation 
- 证书存储位置,可能值为:CurrentUser,LocalMachine

                             x509FindType 
- 查找证书的方式,可能的值:FindBySubjectName,FindByThumbPrint,FindByIssuerName

                             findValue 
- 对应查找方式的要查找证书的值                  -->

                            
<clientCertificate storeName="存储区" storeLocation="存储位置" x509FindType="FindBySubjectName" findValue="Client1" />

                            
<serviceCertificate>

                                 
<authentication certificateValidationMode="None" />

                            
</serviceCertificate>

                       
</clientCredentials>

                   
</behavior>

              
</endpointBehaviors>

         
</behaviors>

         
<!-- 包含客户端跟服务端连接使用到的Endpoint的配置 -->

         
<client>

              
<!-- 每个客户端Endpoint设置

             属性说明:

             address 
- 对应到服务端这个Endpoint的address

             binding 
- 指定这个Endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,

                       比如是basicHttpBinding

             contract 
- 指定这个Endpoint对应的Contract的全限定名(名称空间.类型名)

             name 
- Endpoint的配置名,客户端代理类的构造方法中的endpointConfigurationName对应到这个name

             bindingConfiguration 
- 指定客户端binding的具体设置,指向<bindings>元素下同类型binding的name

               behaviorConfiguration 
- 指定这个endpoint的behavior,指向<behaviors>下的同样配置名称的<endpointBehaviors>-->

              
<endpoint address="URI" binding="basicHttpBinding" bindingConfiguration="binding名" behaviorConfiguration="String" contract="Contract全限定名" name="endpoint配置名" >

                   
<!-- 用于客户端验证服务端身份,可选以下一种方式验证服务端-->

                   
<identity>

                       
<userPrincipalName></userPrincipalName>

                       
<servicePrincipalName></servicePrincipalName>

                       
<!--如果客户端验证是windows,这里指定DNS名;如果是Certificate,这里指定证书subject name-->

                       
<dns></dns>

                       
<rsa></rsa>

                       
<!--指定服务端证书的公钥

                            属性说明:

                            encodedValue 
- 服务端证书的公钥的base64编码,用于加密用户名和密码-->

                       
<certificate encodedValue=""></certificate>

                       
<!-- 用户指定在客户端证书存储区内的服务端证书

                         属性说明:

                         storeName 
- 证书的存储区,可能值为:AddressBook,AuthRoot,CertificateAuthority

                                     Disallowed,My,Root,TrustedPeople,TrustedPublisher

                         storeLocation 
- 证书存储位置,可能值为:CurrentUser,LocalMachine

                             x509FindType 
- 查找证书的方式,可能的值:FindBySubjectName,FindByThumbPrint,FindByIssuerName

                             findValue 
- 对应查找方式的要查找证书的值                  -->

                       
<certificateReference storeName="存储区" storeLocation="存储位置" x509FindType="FindBySubjectName" findValue="Client1" />

                   
</identity>

              
</endpoint>

         
</client>

     
</system.ServiceModel>

</configuration>

转载于:https://www.cnblogs.com/tommyli/archive/2009/02/18/1393173.html

相关文章:

图的算法专题——最小生成树

概要&#xff1a; Prim算法Kruskal算法1、Prim算法 算法流程&#xff1a; &#xff08;1&#xff09;对图G&#xff08;V,E&#xff09;设置集合S来存放已被并入的顶点&#xff0c;然后执行n次&#xff08;2&#xff09;&#xff08;3&#xff09; &#xff08;2&#xff09;每…

GridControl摘录

gvCabTotalInfo.Columns["出线平均<br>电压"].SummaryItem.SummaryType DevExpress.Data.SummaryItemType.Average; gvCabTotalInfo.Columns["出线平均<br>电压"].SummaryItem.DisplayFormat "平均:{0:N2}"; gvCabTotalInfo.Refre…

小程序将form表单数据写入云数据库

小程序将form表单数据写入云数据库 <!--pages/MyIncome/MyIncome.wxml--> <view classforms><form bindsubmitgetForm><view classgetform><view>用戶名:<input typetext nameusername placeholder請輸入用戶名/></view><view&g…

ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

第四章 组合控件开发CompositeControl 大家好&#xff0c;今天我们来实现一个自定义的控件&#xff0c;之前我们已经知道了&#xff0c;要开发自定义的控件一般继承三个基 类:Control,WebControl&#xff0c;还有一个就是今天要说的CompositeControl。系列文章链接:ASP.NET自…

[C++对象模型][6]sizeof与对象内存布局

有了前面几节的铺垫&#xff0c;本节开始摸索C的对象的内存布局&#xff0c;平台为windows32位VS2008。 一 内置类型的size 内置类型&#xff0c;直接上代码&#xff0c;帮助大家加深记忆&#xff1a; Codevoid TestBasicSizeOf() { cout << __FUNCTION__ << e…

Linux负载均衡实现

配置之前清空所有服务器防火墙规则iptables -F关闭selinux&#xff1a;1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态SELinux status: enabled2、getenforce ##也可以用这个命令检查关闭SELinux&#xff1a;1…

【bzoj2770】YY的Treap 权值线段树

题目描述 志向远大的YY小朋友在学完快速排序之后决定学习平衡树&#xff0c;左思右想再加上SY的教唆&#xff0c;YY决定学习Treap。友爱教教父SY如砍瓜切菜般教会了YY小朋友Treap&#xff08;一种平衡树&#xff0c;通过对每个节点随机分配一个priority&#xff0c;同时保证这棵…

第二章 数据类型、运算符与表达式

#include <stdio.h> #include <stdlib.h>int Add(int a,int b) {return ab; }int main() {int x,y,sum 0;printf("Input two integers:\n");scanf("%d%d",&x,&y);sum Add(x,y);printf("sum %d\n",sum);return 0; }计算圆…

从设计原则谈软件开发(二)

最近一直在一个培训公司做着极为无聊的培训&#xff0c;所以一直都没有时间上网。今天突然发现这里可以上无线&#xff0c;嘿嘿&#xff0c;就上来继续把这个文章完成。 上次说到了设计原则中的单一职责原则&#xff0c;今天时间比较紧&#xff0c;我就继续往下写&#xff0c;也…

Npm环境依赖重置

需要彻底删除node_modules 然后npm install 如果无法删除node_modules文件&#xff0c;可以试试这个&#xff1a; 安装RimRaf&#xff1a; npm install rimraf -g 并在项目文件夹中删除node_modules文件夹&#xff1a; rimraf node_modules 然后你可以去npm install转载于:http…

MySQL的information_schema

在一次清空一张比较大的表时&#xff08;在清空前占用400多兆&#xff09;&#xff0c;发现该表中记录为0条但是空间并没有被释放&#xff0c;采用下面方式可查看占用情况 -- 查询各个数据库占用磁盘的情况 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2…

编写spring应用

测试类自动注入失败&#xff1a;RunWith(SpringRunner.class)详解 CtrlAltDelete键&#xff0c;打开任务管理器&#xff0c;结束占据8080端口的Tomcat进程。 HomeController.java <!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml"xmlns:th&quo…

[导入]Learning.ASP.NET 2.0.with.AJAX.pdf(14.14 MB)

ASP.NET 2.0的AJAX无疑是最快&#xff0c;最有效&#xff0c;最可靠和最佳的方式支持创建交互式Web应用程序上市。结合开发工具&#xff0c;可以从Microsoft &#xff0c;免费和商业&#xff0c;这是难以置信轻松地创建网站&#xff0c;看看伟大的表现良好。最重要的是&#xf…

c# IO线程 打造 定时打开指定程序

用IO以及线程轻松实现 定时器 &#xff0c;在指定的时间打开指定的程序&#xff1a;&#xff09; 首先是如何实现定时&#xff1f;这可以单独的用个线程&#xff0c;在时间到的时候打开程序 然后是如何打开程序 &#xff0c;用Process.Start就可以了 最后就是如何把程序列表保存…

Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

Memcached Memcached 是一个高性能的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数&#xff0c;从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程&#xf…

jQuery中的常用内容总结(一)

jQuery中的常用内容总结(一) 前言 不好意思(✿◠‿◠)&#xff0c;由于回家看病以及处理一些其它事情耽搁了&#xff0c;不然这篇博客本该上上周或者上周写的&#xff1b;同时闲谈几句&#xff1a;在这里建议各位开发的童鞋&#xff0c;如果有疾病尽快治疗&#xff0c;不要拖&a…

你需要眼光和资格

机上遇到一男人&#xff0c;操北京口音&#xff0c;三十二三&#xff0c;婚否不详&#xff0c;容貌体面。 优势&#xff1a;技术好&#xff0c;聪明&#xff0c;没坏心&#xff0c;乐观 劣势&#xff1a;有点懒&#xff0c;自傲&#xff0c;责任心与意志力指数一般 其所谓“恰当…

嵌入式系统基础了解

1.一个启动 .s文件&#xff08;start.s&#xff09;&#xff0c;至少需要包含三个段: ;//堆栈段 ; //中断向量表 ; //代码段 参考代码&#xff1a; stack_size EQU 0x200 ;…

BFD与IGP快速收敛应用测试

cqmmx&#xff0c;2008-9-10 1、背景介绍 目前对网络稳定性影响较大的一般是链路中断、节点失效等故障&#xff0c;而常规的慢Hello机制检测耗时较长&#xff0c;且常用IGP&#xff08;ISIS和OSPF&#xff09;在默认配置情况下&#xff0c;收敛速度很慢&#xff0c;一般需要几十…

rsa证书ssh登陆服务器

好久不用&#xff0c;又生疏了。 今晚实操了一下&#xff0c;作一个记录。 使用rsa的密钥对登陆linux服务器&#xff0c;主要是为了安全。 这种证书级别的登陆&#xff0c;比最复杂的root用户名和帐号的安全性都要高一个等级。 至少服务器不会被暴破(暴力破解)。 ~~~~~~~~~~~~~…

简单数据结构(队列 栈 树 堆 )

基础知识 基本概念 程序 算法 数据结构数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 常见…

cannot access a closed file

用上传控件上传文件时&#xff0c;当执行SaveAs()时出错&#xff0c;异常为cannot access a closed file&#xff1b; 当传小文件没有异常&#xff0c;当超过80k时就出上述异常&#xff0c;后来发现要将Web.config里增加 <!--设置上传附近的大小--> <httpRuntime …

实验四-常用图像增强方法

1、采用二维中值滤波函数medfilt2 对受椒盐噪声干扰的图像滤波&#xff0c;窗口分别采用3*3,5*5,7*7 i imread(D:\study\third_down\ImageProcessing\work\work_one\flower.jpg); I rgb2gray(i); J imnoise(I,salt & pepper,0.04); K1 medfilt2(J,[3 3]);%对矩阵I进行…

商贸通服装鞋帽版客户端无法连接服务器的问题(自己遇到的,已解决)

今天给一客户装“商贸通服装鞋帽版”&#xff0c;客户机是xp&#xff0c;服务器是win2003,装好后在连接服务器是总是报“无法连接服务器”之类的错&#xff0c;但是客户机和服务器双向都可以ping的通&#xff0c;而且双方的防火墙都已关闭&#xff0c;没有第三方防火墙&#xf…

【转】Visual C#创建和使用ActiveX组件

开发基于.net平台上的程序员是很难从本质上把Visual C#和ActiveX组件联起来&#xff0c;虽然在使用Visual C#开发应用程序时&#xff0c;有时为了快速开发或者由于.Net Framework SDK的不完整&#xff0c;还需要借助ActiveX。但即使如此&#xff0c;也很难把二者联系起来。其中…

Why Sleeping May Be More Important Than Studying

Why Sleeping May Be More Important Than Studying转载于:https://www.cnblogs.com/Lamfai/p/10441451.html

测试开发板与主机之间通过串口收发数据(uart.c/uart.h )

usart.c: #include "usart.h"// U1_TX: PA9 // U1_RX: PA10 void usart_init(void) {//1. GPIO口的配置RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE); GPIO_InitTypeDef p;p.GPIO_Mode GPIO_Mode_AF;p.GPIO_Pin GPIO_Pin_9 | GPIO_Pin_10;p.GPIO_PuPd G…

卷积神经网络--CNN

1.人工神经网络 神经网络由大量的节点&#xff08;或称“神经元”、“单元”&#xff09;和相互连接而成。每个神经元接受输入的线性组合&#xff0c;进行非线性变换&#xff08;亦称激活函数activation function&#xff09;后输出。每两个节点之间的连接代表加权值&#xff0…

基于WinCE的I2C驱动程序设计

http://www.mcu123.com/news/Article/rtos/WinCE/200607/88.html 引言 随着以计算机技术、通信技术和软件技术为核心的信息技术的迅速发展&#xff0c;嵌入式系统在各行业得到了广泛的应用&#xff0c;极大地推动了行业的渗透性应用。嵌入式系统是“以应用为中心、以计算机技…

poj2965-poj2965-The Pilots Brothers' refrigerator

方法同poj1753&#xff0c;但用在这题就TLE了&#xff0c;以下是TLE版本&#xff1a; Code1#include <stdio.h> 2#include <stdlib.h> 3#include <string.h> 4#define MAXSTATE 65536 5#define MAXSIZE 16 6#define ALLOPEN 0 7 8//队列结构体 9type…