分享

WCF注册Windows Service

 昵称10504424 2013-01-31

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

 

 

分类: WCF入门笔记
标签: WCF

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多