3

WCF Web API を使用して公開したいリソースがいくつかあります。Web ホストを使用して Web API を調査しましたが、サービスはすべて運用環境で Windows サービスとして実行されるため、テストは脇に置いて、すべてが必要に応じて機能することを確認します。私はここでサンプル アプリを見てきました: http://webapicontrib.codeplex.com/SourceControl/changeset/view/2d771a4d6f6f#Samples%2fSelfHosted%2fserver%2fProgram.csしかし、これは現在のバージョン (プレビュー 5) では動作しません。コードから HttpConfigurableServiceHost クラスにアクセスできないためです。

Web API の最も魅力的な側面の 1 つは、MapServiceRoute と新しい WebApiConfiguration を使用した簡単な起動です。ただし、サービスのベース URL とポートを定義する方法がわかりません。明らかに、IIS でサービスをホストすると、IIS でこの情報を構成するため、これがなくなります。Windows サービスでホストする場合、どうすればこれを達成できますか?

4

3 に答える 3

2

最新バージョンは HttpServiceHost を使用するだけです。 http://webapicontrib.codeplex.com/SourceControl/changeset/view/ddc499585751#Samples%2fSelfHosted%2fserver%2fProgram.cs

引き続き問題が発生する場合は、Twitter でお知らせください。

于 2011-10-20T01:57:51.440 に答える
1

これは、コンソール アプリを使用した基本的なコードです。Windows サービスは、start メソッドと stop メソッドを使用してサービスを開始および停止し、ブロックする必要がないことを除いて、同じ基本的なアプローチを使用します。

static void Main(string[] args)
{
    var host = new HttpServiceHost(typeof(PeopleService), "http://localhost:8080/people");

    host.Open();

    foreach (var ep in host.Description.Endpoints)
    {
        Console.WriteLine("Using {0} at {1}", ep.Binding.Name, ep.Address);
    }

    Console.ReadLine();

    host.Close();
}

このブログ投稿を参照してください。

于 2011-10-20T08:51:13.680 に答える