zoukankan      html  css  js  c++  java
  • WCF注册Windows Service

    WCF注册Windows Service

    问题:

        在前面创建的WCF的HelloWorld程序,我们把WCF的服务寄宿到了Host这个控制台项目中了。现在你想将WCF的服务寄宿到Windows服务中。

    解决过程:

    1.  删除原来Host控制台项目,然后在solution上右键,新建一个WindowService项目。如下图:

    2. 对MyFirstWindowsService项目添加对Contracts项目、Service项目和System.ServiceModel的引用。
    3. 将MyFristWindowsService项目中的Class1.cs文件重命名为HelloHost.cs,然后打开这个文件,里面代码如下:
    4. HelloHost.cs
      namespace MyFirstWindowsService
      {
          partial class HelloHost : ServiceBase
          {
              private ServiceHost _host;
      
              public ServiceHost Host
              {
                  get { return _host; }
                  set { _host = value; }
              }
              public HelloHost()
              {
                  InitializeComponent();
              }
      
              protected override void OnStart(string[] args)
              {
                  // TODO: Add code here to start your service.
                  Host = new ServiceHost(typeof(HelloWorld));
                  Host.Open();
              }
      
              protected override void OnStop()
              {
                  // TODO: Add code here to perform any tear-down necessary to stop your service.
                  if (Host != null)
                  {
                      Host.Close();
                      Host = null;
                  }
              }
          }
      }    g
    5. HelloHost.cs[Design]的界面上右键,选择添加安装器(Add Installer)。这时,项目里会自动生成一个ProjectInstaller.cs文件。
    6. 打开ProjectInstaller.cs[Design]的设计界面,将会出现下图:

    7. 选中serviceInstaller1,打开它的属性视图(Ctrl W,P),修改属性。如下图所示:

    8. 接着选中serviceProcessInstaller1,打开它的属性视图,修改属性。如下图:(这里服务账号也可以是其他的。)

    9. 接下来我们看看这个项目里的program.cs文件。代码如下:
      Program.cs
      namespace MyFirstWindowsService
      {
          static class Program
          {
              /// <summary>
              /// The main entry point for the application.
              /// </summary>
              static void Main()
              {
                  ServiceBase[] ServicesToRun;
                  ServicesToRun = new ServiceBase[] 
                  { 
                       new HelloHost(),
                  };
                 ServiceBase.Run(ServicesToRun);
                  
              }
          }
      }
    10. 这些都做好了之后,在MyFirstWindowsService项目中添加服务端的配置文件。这个在上一节中也写过,代码如下:
      App.config
      <?xml version="1.0"?>
      <configuration>
          <system.serviceModel>
              <behaviors>
                  <serviceBehaviors>
                      <behavior name="HelloWorldBehavior">
                          <serviceMetadata httpGetEnabled="true" />
                      </behavior>
                  </serviceBehaviors>
              </behaviors>
              <services>
                  <service behaviorConfiguration="HelloWorldBehavior" name="Services.HelloWorld">
                      <endpoint address="Hello" binding="basicHttpBinding" name="Hello"
                          contract="Contracts.IHello" listenUriMode="Explicit" />
                      <endpoint address="mexHello" binding="mexHttpBinding" bindingConfiguration=""
                          name="mexHello" contract="IMetadataExchange" />
                      <host>
                          <baseAddresses>
                              <add baseAddress="http://localhost:8080/Service" />
                          </baseAddresses>
                      </host>
                  </service>
              </services>
          </system.serviceModel>
      <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
      
      </configuration>

       

    11. 现在我们的solution的目录是这个样子的:F6,Build。确保build success。

    12. 打开MyFirstWindowsService项目的bin/debug文件。在项目上右键,open folder in Windows explorer。debug文件夹中有如下文件:

    13. 将整个debug文件夹中文件拷出来,放到另外一个目录下。我这儿是放在C:\FirstService中。后面我们注册的windows服务将从这个目录下找exe文件。
    14. 下面就是要注册了。我们用InstallUtil.exe来注册(当然你也可以用sc)。打开InstallUtil.exe在我的电脑的目录 是:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319。你可以从命令行进如这个目录,然后执行 InstallUtil命令。也可以在所有程序中找到visual studio Tools,里面的visual studio command prompt命令行工具。执行安装的命令是InstallUtil C:\FirstService\MyFirstWindowsService.exe

    15. 成功后,你就可以在控制面板-》管理工具-》服务中找到它了。

     

     

  • 相关阅读:
    Ios8代码关闭输入预测问题
    iOS10 拍照崩溃问题
    iOS 圆的放大动画效果
    12-指针
    11-数组、字符串
    09-函数
    iOS 动画
    iOS 传值 委托(delegate)和block 对比
    IOS Table中Cell的重用reuse机制分析
    IOS 网络请求
  • 原文地址:https://www.cnblogs.com/simbadan/p/2756349.html
Copyright © 2011-2022 走看看