WindowsServiceにホストされているWebAPI
6802 ワード
手順:
1、WindowsServiceプロジェクトを作成する.
2、Manage NuGet Packagesをクリックし、Microsoft Aspを検索する.NET Web API Self Host、Installをクリックします.
3、サービスを編集する.csファイルは次のとおりです.
4、サービス1を開く.csのビューデザイナ、ビューデザイナの任意の位置を右クリックし、「インストーラの追加」を選択すると、プロジェクトと目的の下に「インストーラ」のグループが表示されます(最初に「インストーラ」のグループを追加した場合は、ProjectInstaller.csをダブルクリックしてProjectInstallerのビューデザイナーを開き、serviceInstaller 1コンポーネントを見つけ、選択した後F 4キーを押してコンポーネントのプロパティを設定し、Description=「テストサーバー?」DisplayName=“Service1” ServiceName=“Service1”;//この値はWindowsServices 1とする必要があります.InitService()メソッドで設定するbase.ServiceNameプロパティは、StartTypeがサービス実行タイプで、必要に応じて設定できます.(Manual:手動起動、AutoMaticは自動起動)、ceProcessInstaller 1コンポーネントを見つけ、選択してF 4キーを押してコンポーネント属性を設定し、Account="LocalSystem";//他のプロパティに設定すると、サービスが開始されると、ユーザー名とパスワードの入力を求められます.これにより、インストールとテストが完了します.
5、生成ディレクトリを開き、生成に成功するとWindowsServices 1がある.exeファイルは、生成ディレクトリのルートディレクトリの下にbat(バッチファイル)を2つ追加し、インストールとアンインストールに使用し、テキストファイルを新規作成し、ファイルを開いて次の2行のコマンドC:WindowsMicrosoftを追加します.NET\Framework\v4.0.30319\InstallUtil.exe WindowsService1.exe pauseは保存するテキストファイルを閉じ、その後「インストール服.bat」ファイルと名前を変更します.接尾辞名を変更することに注意してください.bat!,新しいテキストファイルを作成し、ファイルを開いて次の2行のコマンドCを追加します:WindowsMicrosoft.NET\Framework\v4.0.30319\InstallUtil.exe/u WindowsService1.exe pauseは保存するテキストファイルを閉じ、その後「アンインストールbat」ファイルと名前を変更します.接尾辞名を変更することに注意してください.bat! 6.4「インストール服.bat」ファイル、windowsサービスをインストールします.サービスInstaller 1を設定したばかりなので、インストールに成功したら手動でサービスを開始する必要があります.StartType=Manualはwindowsサービスマネージャを開き、Service 1というサービスを見つけます.右ボタンのプロパティです.をクリックして起動します.
6.コンパイル時のインストールアンインストール:
build events:Pre-build enent command line
net stop xxx exit/b 0
post-build event command line:
%systemroot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe/u $(TargetPath)%systemroot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe $(TargetPath)
1、WindowsServiceプロジェクトを作成する.
2、Manage NuGet Packagesをクリックし、Microsoft Aspを検索する.NET Web API Self Host、Installをクリックします.
3、サービスを編集する.csファイルは次のとおりです.
1 public partial class Service1 : ServiceBase
2 {
3 private HttpSelfHostServer _server;
4 private readonly HttpSelfHostConfiguration _config;
5 public const string ServiceAddress = "http://localhost:1345";
6 public Service1()
7 {
8 InitializeComponent();
9
10 _config = new HttpSelfHostConfiguration(ServiceAddress);
11 _config.Routes.MapHttpRoute("DefaultApi",
12 "api/{controller}/{id}",
13 new { id = RouteParameter.Optional });
14 }
15
16 protected override void OnStart(string[] args)
17 {
18 _server = new HttpSelfHostServer(_config);
19 _server.OpenAsync();
20 }
21
22 protected override void OnStop()
23 {
24 _server.CloseAsync().Wait();
25 _server.Dispose();
26 }
27 }
28 public class ApiServiceController : ApiController
29 {
30 [HttpGet]
31 public string Get()
32 {
33 return "Hello from windows service!";
34 }
35 }
4、サービス1を開く.csのビューデザイナ、ビューデザイナの任意の位置を右クリックし、「インストーラの追加」を選択すると、プロジェクトと目的の下に「インストーラ」のグループが表示されます(最初に「インストーラ」のグループを追加した場合は、ProjectInstaller.csをダブルクリックしてProjectInstallerのビューデザイナーを開き、serviceInstaller 1コンポーネントを見つけ、選択した後F 4キーを押してコンポーネントのプロパティを設定し、Description=「テストサーバー?」DisplayName=“Service1” ServiceName=“Service1”;//この値はWindowsServices 1とする必要があります.InitService()メソッドで設定するbase.ServiceNameプロパティは、StartTypeがサービス実行タイプで、必要に応じて設定できます.(Manual:手動起動、AutoMaticは自動起動)、ceProcessInstaller 1コンポーネントを見つけ、選択してF 4キーを押してコンポーネント属性を設定し、Account="LocalSystem";//他のプロパティに設定すると、サービスが開始されると、ユーザー名とパスワードの入力を求められます.これにより、インストールとテストが完了します.
5、生成ディレクトリを開き、生成に成功するとWindowsServices 1がある.exeファイルは、生成ディレクトリのルートディレクトリの下にbat(バッチファイル)を2つ追加し、インストールとアンインストールに使用し、テキストファイルを新規作成し、ファイルを開いて次の2行のコマンドC:WindowsMicrosoftを追加します.NET\Framework\v4.0.30319\InstallUtil.exe WindowsService1.exe pauseは保存するテキストファイルを閉じ、その後「インストール服.bat」ファイルと名前を変更します.接尾辞名を変更することに注意してください.bat!,新しいテキストファイルを作成し、ファイルを開いて次の2行のコマンドCを追加します:WindowsMicrosoft.NET\Framework\v4.0.30319\InstallUtil.exe/u WindowsService1.exe pauseは保存するテキストファイルを閉じ、その後「アンインストールbat」ファイルと名前を変更します.接尾辞名を変更することに注意してください.bat! 6.4「インストール服.bat」ファイル、windowsサービスをインストールします.サービスInstaller 1を設定したばかりなので、インストールに成功したら手動でサービスを開始する必要があります.StartType=Manualはwindowsサービスマネージャを開き、Service 1というサービスを見つけます.右ボタンのプロパティです.をクリックして起動します.
6.コンパイル時のインストールアンインストール:
build events:Pre-build enent command line
net stop xxx exit/b 0
post-build event command line:
%systemroot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe/u $(TargetPath)%systemroot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe $(TargetPath)