Windows服务承载WCF
2020-12-13 04:04
标签:style blog http color 文件 os Source文件 ------------------------- app.config ----------------------------- Windows服务承载WCF,搜素材,soscw.com Windows服务承载WCF 标签:style blog http color 文件 os 原文地址:http://www.cnblogs.com/bianhuan/p/3831729.html 1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5
6 using System.ComponentModel;
7 using System.ServiceModel;
8 using System.ServiceProcess;
9 using System.Configuration;
10 using System.Configuration.Install;
11
12 namespace Microsoft.ServiceModel.Samples
13 {
14 // Define a service contract.
15 [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
16 public interface ICalculator
17 {
18 [OperationContract]
19 double Add(double n1, double n2);
20 [OperationContract]
21 double Subtract(double n1, double n2);
22 [OperationContract]
23 double Multiply(double n1, double n2);
24 [OperationContract]
25 double Divide(double n1, double n2);
26 }
27
28 // Implement the ICalculator service contract in a service class.
29 public class CalculatorService : ICalculator
30 {
31 // Implement the ICalculator methods.
32 public double Add(double n1, double n2)
33 {
34 double result = n1 + n2;
35 return result;
36 }
37
38 public double Subtract(double n1, double n2)
39 {
40 double result = n1 - n2;
41 return result;
42 }
43
44 public double Multiply(double n1, double n2)
45 {
46 double result = n1 * n2;
47 return result;
48 }
49
50 public double Divide(double n1, double n2)
51 {
52 double result = n1 / n2;
53 return result;
54 }
55 }
56
57 public class CalculatorWindowsService : ServiceBase
58 {
59 public ServiceHost serviceHost = null;
60 public CalculatorWindowsService()
61 {
62 // Name the Windows Service
63 ServiceName = "WCFWindowsServiceSample";
64 }
65
66 public static void Main()
67 {
68 ServiceBase.Run(new CalculatorWindowsService());
69 }
70
71 // Start the Windows service.
72 protected override void OnStart(string[] args)
73 {
74 if (serviceHost != null)
75 {
76 serviceHost.Close();
77 }
78
79 // Create a ServiceHost for the CalculatorService type and
80 // provide the base address.
81 serviceHost = new ServiceHost(typeof(CalculatorService));
82
83 // Open the ServiceHostBase to create listeners and start
84 // listening for messages.
85 serviceHost.Open();
86 }
87
88 protected override void OnStop()
89 {
90 if (serviceHost != null)
91 {
92 serviceHost.Close();
93 serviceHost = null;
94 }
95 }
96 }
97
98 // Provide the ProjectInstaller class which allows
99 // the service to be installed by the Installutil.exe tool
100 [RunInstaller(true)]
101 public class ProjectInstaller : Installer
102 {
103 private ServiceProcessInstaller process;
104 private ServiceInstaller service;
105
106 public ProjectInstaller()
107 {
108 process = new ServiceProcessInstaller();
109 process.Account = ServiceAccount.LocalSystem;
110 service = new ServiceInstaller();
111 service.ServiceName = "WCFWindowsServiceSample";
112 Installers.Add(process);
113 Installers.Add(service);
114 }
115 }
116 }
xml version="1.0" encoding="utf-8" ?>
configuration>
system.serviceModel>
services>
service behaviorConfiguration="CalculatorServiceBehavior" name="Microsoft.ServiceModel.Samples.CalculatorService">
endpoint address="http://localhost:8000/ServiceModelSamples/service"
behaviorConfiguration="NewBehavior0" binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
endpoint address="http://localhost:8000/ServiceModelSamples/service/mex"
binding="mexHttpBinding" contract="IMetadataExchange" />
host>
baseAddresses>
add baseAddress="http://localhost:8000/ServiceModelSamples/service" />
baseAddresses>
host>
service>
services>
behaviors>
endpointBehaviors>
behavior name="NewBehavior0" />
endpointBehaviors>
serviceBehaviors>
behavior name="CalculatorServiceBehavior">
serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8000/Sample"
httpsGetEnabled="true" />
serviceDebug includeExceptionDetailInFaults="false" />
behavior>
serviceBehaviors>
behaviors>
system.serviceModel>
configuration>