• 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. 成功后,你就可以在控制面板-》管理工具-》服务中找到它了。

     

     

  • 相关阅读:
    Flex的DateChooser组件中文显示方法
    FLEX XML XMLList XMLListCollection ArrayCollection相互转换
    开机电脑cpu占用100%
    FLEX 动态绑定chart 数据
    FLEX 数组 转化成 xml
    FLEX 通过url 得到网页内容 xml通信
    FLEX 时间计算
    FlEX 如何调试
    unix,linux,windows 哪个更好,更适合做服务器
    FLEX httpService 用法介绍
  • 原文地址:https://www.cnblogs.com/simbadan/p/2756349.html
Copyright © 2020-2023  润新知