![](https://i-blog.csdnimg.cn/blog_migrate/4b1087159a3fb3e16324d2e0325f8091.jpeg)
2.创建服务主机
创建WEB宿主做服务主机,用来侦听客户端提交的请求,并创建用于处理那些请求的服务类的实例.
![](https://i-blog.csdnimg.cn/blog_migrate/7a25d828dd4af65ac660e1fed1c6ae0b.jpeg)
<1>代码掩藏文件方式的服务类.
创建成功后如下图所示意.
![](https://i-blog.csdnimg.cn/blog_migrate/a9a4d00772e9e6e3336c9f51f33e6a95.jpeg)
在App_Code下含有一个带事例代码的Service.cs文件.(本过程直接采用现有代码).Service.svc文件相当于WebService的.asmx(本过程此处不做修改).在Web.config中添加一行
1
<
serviceMetadata httpGetEnabled
=
"
true
"
/>
完整的Web.config文件内容如下.
![](/Images/OutliningIndicators/None.gif)
1
<?
xml version="1.0"
?>
2
<
configuration
xmlns
="http://schemas.microsoft.com/.NetConfiguration/v2.0"
>
3
<
system.serviceModel
>
4
<
services
>
5
<!--
Before deployment, you should remove the returnFaults behavior configuration to avoid disclosing information in exception messages
-->
6
<
service
name
="WCFServiceLibrary.service1"
behaviorConfiguration
="returnFaults"
>
7
<
endpoint
contract
="WCFServiceLibrary.IService1"
binding
="wsHttpBinding"
/>
8
</
service
>
9
</
services
>
10
<
behaviors
>
11
<
serviceBehaviors
>
12
<
behavior
name
="returnFaults"
>
13
<
serviceDebug
includeExceptionDetailInFaults
="true"
/>
14
<
serviceMetadata
httpGetEnabled
="true"
/>
15
</
behavior
>
16
</
serviceBehaviors
>
17
</
behaviors
>
18
</
system.serviceModel
>
19
<
system.web
>
20
<
compilation
debug
="true"
/>
21
</
system.web
>
22
</
configuration
>
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
<2>引用预编译程序集的服务类.
![](https://i-blog.csdnimg.cn/blog_migrate/bf2c9302d5506241a6f99aeecea30c6f.jpeg)
添加对服务类的引用.
![](https://i-blog.csdnimg.cn/blog_migrate/1def2678cfdbadaa125b0788d7c1fcb1.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/5b7a98953eda23bddbbfa8164962a77d.jpeg)
采用此种方式,可以删除App_Code下的Service.cs文件.修改Service.svc文件内容如下:
1
<
% @ServiceHost
Language
=C#
Debug
="true"
Service
="WCFServiceLibrary.service1"
%
>
![](/Images/OutliningIndicators/None.gif)
同时Web.confing同步修改如下:
1
<?
xml version="1.0"
?>
2
<
configuration
xmlns
="http://schemas.microsoft.com/.NetConfiguration/v2.0"
>
3
<
system.serviceModel
>
4
<
services
>
5
<!--
Before deployment, you should remove the returnFaults behavior configuration to avoid disclosing information in exception messages
-->
6
<
service
name
="WCFServiceLibrary.service1"
behaviorConfiguration
="returnFaults"
>
7
<
endpoint
contract
="WCFServiceLibrary.IService1"
binding
="wsHttpBinding"
/>
8
</
service
>
9
</
services
>
10
<
behaviors
>
11
<
serviceBehaviors
>
12
<
behavior
name
="returnFaults"
>
13
<
serviceDebug
includeExceptionDetailInFaults
="true"
/>
14
<
serviceMetadata
httpGetEnabled
="true"
/>
15
</
behavior
>
16
</
serviceBehaviors
>
17
</
behaviors
>
18
</
system.serviceModel
>
19
<
system.web
>
20
<
compilation
debug
="true"
>
21
<
assemblies
>
22
<
add
assembly
="System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
23
<
add
assembly
="Microsoft.Transactions.Bridge, Version=3.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
24
<
add
assembly
="SMDiagnostics, Version=3.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/>
25
<
add
assembly
="System.IdentityModel.Selectors, Version=3.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/>
26
<
add
assembly
="System.DirectoryServices, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
27
<
add
assembly
="System.Web.RegularExpressions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
28
<
add
assembly
="System.Transactions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"
/>
29
<
add
assembly
="System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
30
<
add
assembly
="System.ServiceProcess, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/></
assemblies
></
compilation
>
31
</
system.web
>
32
</
configuration
>
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/None.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/None.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/None.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
3.客户端配置和实现.
创建控制台程序作为测试客户端程序.
添加服务引用后如下.
客户端做简单的如下编程.
1
using
System;
2
using
System.Collections.Generic;
3
using
System.Text;
4![](/Images/OutliningIndicators/None.gif)
5
namespace
WCFCon
6![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
7
class Program
8![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
9
static void Main(string[] args)
10![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
11
localhost.MyServiceClient wcf = new WCFCon.localhost.MyServiceClient();
12
Console.WriteLine("请输入数据:");
13
string str = Console.ReadLine();
14
Console.WriteLine("你输入的数据是:{0}", wcf.MyOperation1(str));
15
localhost.DataContract1 da = new WCFCon.localhost.DataContract1();
16
Console.WriteLine("请输入FirstName:");
17
da.FirstName = Console.ReadLine();
18
Console.WriteLine("请输入LastName:");
19
da.LastName = Console.ReadLine();
20
Console.WriteLine("FirstName+LastName={0}", wcf.MyOperation2(da));
21
}
22
}
23
}
运行结果输出如下.
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/Images/OutliningIndicators/ContractedSubBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/InBlock.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
23
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/de240f906dfb39ceb21bb7deee13b8d3.jpeg)
至此 , 一个简单的 WCF 创建演示过程结束.其它详细请参阅MSDN.