web-dev-qa-db-ja.com

.NET WindowsサービスでAPIエンドポイントを作成する

同じマシン上でASP.NETプロジェクトと.NET Windowsサービスを実行していて、それらに通信させたい(現在はASP.NET => Service one wayのみ)。

これを行う最も便利な方法(IMO)は、ASP.NETプロジェクトが呼び出すサービス内のREST /他のAPIエンドポイントです(ASP.NETはAPIと連携して動作し、問題は、Windowsサービスでこれを行う方法を見つけることができないように見えることです。これをサポートするネイティブメソッド/ライブラリはありますか?

両方のプロジェクトで.NET Framework 4.5.2を使用します。

ありがとう。

8
Yoav Lavi

updateあなたがグリーンフィールドにいて、どのように始めるべきか疑問に思っている場合; ASP.NET Core をご覧ください この記事


Nugetで利用可能なライブラリがあります。

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.OwinSelfHost

使用方法に関する記事がここにあります。 コンソールアプリですが、Windowsサービスに簡単に変換できます。

class Program
{
    static void Main(string[] args)
    {
        using (WebApp.Start<Startup>("http://localhost:8080"))
        {
            Console.WriteLine("Web Server is running.");
            Console.WriteLine("Press any key to quit.");
            Console.ReadLine();
        }
    }
}

すべての一般的なAPI機能(コントローラー、ルート、アクションフィルター)が利用可能になります。

8
Stefan