Windowsのネットコアサービスに展開するNSSMを使用して、
なぜWindowsサービスへの展開
多くの場合、いくつかは、Windowsサービス、特にAsp.netコアよりも少ないを展開するコアプロジェクトを.NETます。通常の状況下では、Asp.netコアは、Linuxサーバにデプロイされますか、Windows、IISにデプロイします。しかし、我々はいくつかの定期的なタスクを、Windowsの場合のAsp.netコアサービスを展開しているWindows Serverは、IISをインストールしていないような、またはCore Asp.netはありません、あなたはリアルタイムに実行し、そのいくつかのケースでする必要があります。
マイクロソフトソリューション
Microsoftはまた、Windowsサービスへのソリューションを導入ネットコアを提供し、それがそのAsp.netコアソリューション言われなければなりません。公式ドキュメントで見つけることができます https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&tabs=aspnetcore2x。しかし、公式のソリューションより複雑でなく、コードの一部を変更する必要があります。
NSSMは何ですか?
公式サイトのhttp://www.nssm.cc/、ダウンロードhttp://www.nssm.cc/downloadを
理解するNSSM単純なポイントは、Windowsサービスとしてパッケージ化され、いくつかのexeファイルのプログラムを入れ、その後、サービスなどのexeファイルのプログラムを実行することができるということです。そして強力なNSSMは、治療のよりシンプルなインターフェイスの愚か者を実行します。
使用NSSM
バックAsp.netコア2.1コードに他の.NETコアの方法に沿って、デモンストレーションとして示しています。
1.必ずネットコアプログラムの動作を確認します
まずAsp.netコアリリースし、その後DOTNET直接コマンドを実行すると、プログラムが実行できることを確認し、アクセス
2、インストールDOTNET NSSMを使用して
NSSMをダウンロードして、検索しNSSMディレクトリにコマンド・ウィンドウを使用しnssm.exeディレクトリが配置されて、その後、実行NSSMをインストールし、その後、箱を果たしたファイルやフォルダを選択します。
パス:DOTNETディレクトリが配置され、通常はデフォルトではC:\ Program Files \ DOTNETの\のdotnet.exe。
スタートアップディレクトリ:プログラムがDLL最後のプログラムディレクトリであるディレクトリ。
引数:プログラムのDLLの名前、通常はプロジェクト名プラスの.dll。
サービス名:サービスに書き込むための名前。
次にをクリックしてインストールサービスの展開を完了するためにボタンを押します。
サービスの名前がインストールされている見つけるために最後に、Windowsサービスマネージャインターフェイスあなたは非常に簡単ウィンドウには、.NETのコアマネージドサービスを置くことができるように、あなたは、右を開始することができます。その上、管理、起動、停止、および簡単。
上記より転載:
著者:のEmrys
出典:http://www.cnblogs.com/emrys5/
リバースプロキシを行うには、IISの設定
ルーティングダウンロードを要求し、アプリケーションのインストール: https://www.iis.net/downloads/microsoft/application-request-routingを
赤い円は、直接他の人がコントロールしていない、上下マップを確認してください3、
5、点击IIS左边菜单中新建的站点TestWeb,在右边功能视图中双击"URL重写"模块打开。
6、点击右上边操作栏中的“添加规则”,弹出如下图的弹框,然后双击弹框中的“反向代理”。
7、然后将要转发的域名或者ip地址填入进去,然后点击确定,现在访问TestWeb的地址即可发现以转发到刚填入的地址中了
为什么部署至Windows Services
在很多情况下,很少会把.Net Core项目部署至Windows服务中,特别是Asp.net Core就更少了。一般情况下,Asp.net Core会部署至linux服务器,或者部署至Windows的IIS中。但也不排除会有Asp.net Core部署至Windows 服务中的情况,比如Windows服务器并没有安装IIS,或者Asp.net Core中存在一些定时任务,需要实时运行,等等一些情况。
微软解决方案
微软也提供了.Net Core部署至Windows 服务的解决方案,应该说是Asp.net Core的解决方案。可以参看官方文档 https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1&tabs=aspnetcore2x。但是官方的解决方案比较繁琐,而且需要更改部分代码。
什么是NSSM?
官网http://www.nssm.cc/,下载地址http://www.nssm.cc/download
简单点理解就是NSSM可以把一些exe程序封装成Windows服务,然后exe程序就像服务一样运行。而且NSSM功能强大,运行更简单,界面化傻瓜化处理方式。
使用NSSM
后面的代码演示以Asp.net Core 2.1作为演示,其他.Net Core方式一致。
1、确保.Net Core程序可以正常运行
先把Asp.net Core发布,然后直接运行dotnet命令,确保程序可以运行并访问
2、使用NSSM安装dotnet
下载NSSM,使用命令窗口至NSSM目录中找到nssm.exe所在的目录,然后运行nssm install,然后会弹框,选择相应的文件和文件夹。
Path:dotnet所在的目录,一般默认是在C:\Program Files\dotnet\dotnet.exe;
Startup directory:程序所在的目录,就是最后程序dll所在的目录;
Arguments:程序dll的名称,一般是项目名加上.dll;
Service name:在此写上服务的名称即可。
然后点击Install service按钮就完成了部署。
最后到Windows服务管理界面找到安装的服务名称,右键启动即可,这样就可以非常简单的把.Net Core托管至Window服务中。方便管理、启动、停止等等。
以上转载自:
作者:Emrys
出处:http://www.cnblogs.com/emrys5/
配置IIS做反向代理
下载安装Application Request Routing: https://www.iis.net/downloads/microsoft/application-request-routing
3、直接勾选上下图的红圈的地方,其他不用管
5、点击IIS左边菜单中新建的站点TestWeb,在右边功能视图中双击"URL重写"模块打开。
6、点击右上边操作栏中的“添加规则”,弹出如下图的弹框,然后双击弹框中的“反向代理”。
7、然后将要转发的域名或者ip地址填入进去,然后点击确定,现在访问TestWeb的地址即可发现以转发到刚填入的地址中了