寄宿WCF服务相关实现方法解析

WCF是一款由微软公司研发的.NET Framework 3.5重要组成部件。它的功能优势突出,比如在兼容性,安全性方面尤其突出。在windows服务中寄宿WCF服务,需要继承ServiceBase,此外,还须要继承Installer以安装服务.以下为具体实现步骤:

寄宿WCF服务步骤1.创建文件winservice.cs,输入代码

 
 
 
  1. namespace windowswcfservice  
  2. {  
  3. using System.ServiceProcess;  
  4. using System.ServiceModel;  
  5. using System.Configuration.Install;  
  6. using System.Configuration;  
  7. using System.ComponentModel;  
  8. [ServiceContract(Namespace="http://mysample")]  
  9. public interface ICalculator  
  10. {  
  11. [OperationContract]  
  12. double Add(double n1, double n2);  
  13. [OperationContract]  
  14. double Subtract(double n1, double n2);  
  15. [OperationContract]  
  16. double Multiply(double n1, double n2);  
  17. [OperationContract]  
  18. double Divide(double n1, double n2);  
  19. }  
  20. public class CalculatorService : ICalculator  
  21. {  
  22. public double Add(double n1, double n2)  
  23. {  
  24. return n1 + n2;  
  25. }  
  26. public double Subtract(double n1, double n2)  
  27. {  
  28. return n1 - n2;  
  29. }  
  30. public double Multiply(double n1, double n2)  
  31. {  
  32. return n1 * n2;  
  33. }  
  34. public double Divide(double n1, double n2)  
  35. {  
  36. return n1 / n2;  
  37. }  
  38. }  
  39. [RunInstaller(true)]  
  40. public class ProjectInstaller : Installer  
  41. {  
  42. private ServiceProcessInstaller process;  
  43. private ServiceInstaller service;  
  44. public ProjectInstaller()  
  45. {  
  46. process = new ServiceProcessInstaller();  
  47. process.Account = ServiceAccount.LocalSystem;  
  48. service = new ServiceInstaller();  
  49. service.ServiceName = "WCFWindowsServiceSample";  
  50. Installers.Add(process);  
  51. Installers.Add(service);  
  52. }  
  53. }  
  54. public class WindowsCalculatorService : ServiceBase  
  55. {  
  56. public ServiceHost serviceHost = null;  
  57. public static void Main()  
  58. {  
  59. ServiceBase.Run(new WindowsCalculatorService());  
  60. }  
  61. protected override void OnStart(string[] args)  
  62. {  
  63. if (serviceHost != null)  
  64. {  
  65. serviceHost.Close();  
  66. }  
  67. try  
  68. {  
  69. serviceHost = new ServiceHost(typeof(CalculatorService));  
  70. serviceHost.Open();  
  71. }  
  72. catch(System.Exception err)  
  73. {  
  74. System.Diagnostics.EventLog.WriteEntry("Application", err.Message);  
  75. }  
  76. }  
  77. protected override void OnStop()  
  78. {  
  79. if (serviceHost != null)  
  80. {  
  81. serviceHost.Close();  
  82. serviceHost = null;  
  83. }  
  84. }  
  85. }  

 

寄宿WCF服务步骤2.用csc编译文件winservice.cs

csc /t:exe winservice.cs /r:"C:\WINDOWS\Microsoft.NET\Framework\v3.0\Windows Communication

Foundation\System.ServiceModel.dll" /r:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.ServiceProcess.dll /r:System.Configuration.Install.dll

寄宿WCF服务步骤3.创建winservice.exe.config,内容如下:

 
 
 
  1. < ?xml version="1.0"?> 
  2. < configuration> 
  3. < system.serviceModel> 
  4. < services> 
  5. < service name="windowswcfservice.CalculatorService" 
    behaviorConfiguration="Metadata" > 
  6. < host> 
  7. < baseAddresses> 
  8. < add baseAddress="http://localhost:8000/service"/> 
  9. < /baseAddresses> 
  10. < /host> 
  11. < endpoint address="*" binding="wsHttpBinding" 
    contract="windowswcfservice.ICalculator" /> 
  12. < endpoint address="mex" binding="mexHttpBinding" 
    contract="IMetadataExchange"/> 
  13. < /service> 
  14. < /services> 
  15. < behaviors> 
  16. < serviceBehaviors> 
  17. < behavior name="Metadata"> 
  18. < serviceMetadata httpGetEnabled="true" /> 
  19. < /behavior> 
  20. < /serviceBehaviors> 
  21. < /behaviors> 
  22. < /system.serviceModel> 
  23. < /configuration> 

寄宿WCF服务步骤4.利用工具C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\installutil.exe安装windows 服务.installutil.exe winservice.exe

#t#

寄宿WCF服务步骤5.启动服务:net start WCFWindowsServiceSample。如果服务不能启动,可查看事件日志以定位错误.

寄宿WCF服务步骤6.访问wcf服务:http://localhost:8000/service

寄宿WCF服务步骤7.停止wcf服务:net stop WCFWindowsServiceSample

寄宿WCF服务步骤8.卸载windows服务:installutil.exe /u winservice.exe

网站栏目:寄宿WCF服务相关实现方法解析
转载来源:http://www.csdahua.cn/qtweb/news7/412157.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网