首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将Ninject与Windows服务一起使用

首先,Ninject是一个流行的.NET依赖注入库,允许开发人员轻松地创建和管理对象依赖关系。要将Ninject与Windows服务一起使用,您需要确保Ninject支持Windows服务,并选择适合您需求的Ninject版本。

以下是使用Ninject将Windows服务与Ninject一起使用的步骤:

  1. 安装Ninject

首先,您需要安装Ninject。访问Ninject的官方网站(https://www.ninject.org/download.html)以下载适用于您操作系统的最新版本下载并安装适用于您操作系统的最新版本。

  1. 下载适用于Windows服务的Ninject版本

Ninject有两个版本:Ninject Classic和Ninject.Extensions.Hosting。Ninject Classic适用于Web应用,而Ninject.Extensions.Hosting适用于Windows服务。

您需要下载适用于Windows服务的Ninject版本,可以从Ninject的GitHub发布页面(https://github.com/ninject/Ninject/releases)下载最新版本

  1. 将Ninject添加到Windows服务项目中

打开您下载的Ninject的zip文件,将Ninject DLL文件(而不是DLL文件)复制到您的Windows服务项目的bin文件夹中。

  1. 配置Ninject

在您的Windows服务项目中的app.config或web.config文件中,添加Ninject配置。对于Windows服务,您需要使用Ninject的Hosting模块。

在app.config或web.config文件中添加以下配置:

代码语言:php
复制
<configuration>
  <system.serviceModel>
    <services>
      <service name="MyService">
        <endpoint address="" binding="basicHttpBinding" contract="IMyService">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
          <identity>
            <dns value="localhost"/>
          </identity>
        </endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="False"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
  1. 创建服务代理和实现

创建一个代理类,将服务描述符(Service Description)和实现接口合并在一起。例如,假设您的服务描述符为MyService,实现接口为IMyService,则创建一个名为MyServiceProxy的代理类。

代码语言:csharp
复制
public class MyServiceProxy : ClientBase<IMyService>, IMyService
{
    public MyServiceProxy(string endpointConfigurationName) :
        base(endpointConfigurationName)
    {
    }

    public string GetData(int value)
    {
        return Channel.GetData(value);
    }
}
  1. 运行Windows服务

安装并运行Windows服务,使用Ninject调用代理类。例如,假设您已经创建了MyServiceProxy的实例,

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何ReduxReact Hooks一起使用

在本文中,让我们一起来学习如何ReduxReact Hooks一起使用。 React Redux在2019年6月11日发布的7.1版中提供了对Hooks的支持。...这意味着我们可以在函数组件中将ReduxHooks一起使用,而不是使用高阶组件(HOC)。 什么是Hook?...回到正题 本文的原始目的是介绍如何ReduxHooks结合使用。 React Redux现在提供了useSelector和useDispatch Hook,可以使用它们代替connect。...在该示例中,我们将使用connect的React组件转换为使用Hooks的组件。...不使用高阶组件的另一个好处是不再产生多余的"虚拟DOM包装": ? 最后 现在,我们已经了解和学习了Hooks的基础知识,以及如何将它们Redux一起使用。编程愉快!

7K30

使用winswjar以windows服务的方式运行

但总会有一些特殊情况,如网络环境、设备限制,我们开发的jar不能部署到Linux设备上,必须要部署到windows上。...这里主要讲解winsw使用方式,nssm工具使用方式也很容易,可以自行百度。 二、winsw简介 winsw是一个可以任何应用程序注册成服务的软件。...SpringBoot项目通过执行mvn clean package命令后得到可执行jar包: test-0.0.1.jar(测试用,具体名称在pom.xml文件中定义) 2.4 修改下载的winsw文件 ....exe 改为 test-0.0.1.xml和test-0.0.1.exe , 文件名保持一致,方便后续操作 注意:(jar包、.exe文件、.xml文件均在同一目录下) 如: 创建一个test目录,jar...It should be unique accross the Windows system--> <!

2.5K50
  • nssm 应用写入 Windows 服务

    安装 nssm是一个 Windows 服务管理器,可以把应用写入服务,以达到自动重启的功能。 目前最新的版本是2.24,下载地址。...使用 Node 假设有一个最简单的 node 服务器程序 var express = require('express'); var app = express(); app.get('/', function...假如还是在刚才 index.js 文件夹下面有一个 bat 文件,文件内容: $ node index.js 1> app.log 2>&1 我们 bat 文件写入 Windows Services...Python Python 应用写入 Windows 服务也可以使用上述两种方法。 nssm 启动 bat 服务报错 遇到 bat 文件双击可以运行,但是写入服务却不能运行的情况。...('Hello') 使用 Windows 自带的 Services 手动启动: 使用 nssm 启动: $ node_test: Unexpected status SERVICE_PAUSED in

    2.3K30

    Windows服务框架服务的编写

    ,而且服务程序一般不予用户进行交互,可以安静的在后台执行,合理的利用服务程序可以简化我们的系统设计,比如Windows系统的日志服务,IIS服务等等。...在入口函数中我们必须给服务一个控制管理程序,这个程序主要是用来处理服务程序接受到的各种控制消息,比如启动服务,暂停服务,停止服务等,这个函数有点类似于Windows 窗口程序中的窗口过程。...这个函数由我们自己编写,然后调用函数RegisterServiceCtrlHandler(Ex) 服务名称对应的控制函数绑定,每当有一个控制事件发生时都会调用我们注册的函数进行处理,RegisterServiceCtrlHandler...我们可以使用函数OpenService来在服务管理器中打开对应服务获取服务对象的句柄,或者使用函数CreateService在服务管理器中创建一个新服务并返回服务的句柄 后面关于服务的控制操作请参考本人之前写的一篇关于服务控制管理器的编写的博客点击这里...第二个宏用来服务名和它对应的入口函数进行绑定。 4.

    1.5K11

    使用Topshelf创建Windows 服务

    Windows 服务由三部分组成: 一个服务可执行文件; 一个服务控制程序(SCP); 服务控制管理器(SCM),负责在 HKLM"SYSTEM"CurrentControlSet"Services 下创建服务键值...用户可通过 SCP 控制服务的启动、停止、暂停等,SCP 会通过 SCM 调用服务程序 开发一个Windows服务通常也比较简单,在开发的时候我们期望以命令行方式运行,想对Windows服务有更多的控制...,就有一个Windows服务框架TopShelf 可以满足,使用这个框架要求你使用一个IoC容器,在框架中使用的是common service locator 接口,可以根据你的喜好去选择你自己中意的IoC...通过命令运行,安装卸载Windows服务 Stuff.exe  #控制台方式运行 Stuff.exe /install  #安装Windows服务 Stuff.exe /uninstall  #卸载Windows...服务实例,推荐大家使用这个Windows服务框架TopShelf ,可以简化很多工作和增加灵活性

    1K60

    使用 C 创建 Windows 服务

    使用 C 创建 Windows 服务 最近需要将一些命令行程序包装成后台服务, 本来可以用 .NET 完成, 不过又想尝试一下用 C 语言实 现 Windows 服务, 发现用 C 语言做 Windows...服务也是很容易的, 步骤如下: 1 包含必要的头文件, 并定义一些常量, 代码如下: #include #include // 服务线程暂停时间; #define..., 使用 sc create 命令可以安装服务: REM 服务名称必须代码中的服务名称保持一致 SC CREATE MemoryStatus binPath= %PROJECT_OUTPUT_DIR%...\MemoryStatus.exe 注意: 服务名称必须代码中的服务名称保持一致, binPath= 之后必须保留一个空格!...服务的启动关闭可以使用 NET 命令: NET START MemoryStatus 过几秒钟之后在关闭服务: NET STOP MemoryStatus 最后, 打开日志文件, 可以看到类似下面的输出

    1.4K20

    使用InstallUtil发布windows服务

    发布Windows Service的方法 1、 在默认窗口Service1中右键Add Install,自动生成两个类。 ? 2....6.使用installutil安装新建好的MyFirstService,方法如下:   一、打开C:\Windows\Microsoft.NET\Framework64\v4.0.30319目录,找到InstallUtil.exe...二、把该文件复制到你生成服务的根目录下。 ?   三、使用命令:在cmd中定位到你的服务所在的目录(即InstallUtil.exe所在的目录),使用InstallUtil 服务名.exe进行安装。...四:用命令:installutil  /u  服务的名称.exe,点击运行,即可卸载服务。 五:使用命令打开services.msc即可找到你的服务啦。...(我已经做过测试),特别是在使用window7的用户特别需要注意,系统默认system账号是“禁用”模式。 ? 第二种错误的可能就是服务已经存在,则会出现下面的错误 ?

    1.2K20

    使用Topshelf部署Windows服务

    Sample Topshelf Host"); x.SetDisplayName("Stuff"); x.SetServiceName("Stuff"); x.UseLog4Net(); }); 自定义服务...--每天记录的日志文件个数,maximumFileSize配合使用--> --> <!...new FileInfo(AppDomain.CurrentDomain.BaseDirectory + "log4net.config"); 如果采用上面的配置的话在调试的时候会写日志,可是在部署成服务时就不写日志了...使用Log4net还需注意的是这个配置文件如果取的路径不正确的话是不会生成日志的,而且此时程序并不会抛异常。 调试程序的时候直接运行即可。...安装服务的话可以用管理员权限打开Cmd,定位到程序所在目录,使用下面命令安装即可: TopShelfService.exe install 注意中间是空格,卸载同理: TopShelfService.exe

    75430
    领券