1

奇妙な/ばかげた質問ですが..データベースからのデータの要求をリッスンする単純な WCF サービスを作成しました。私のマシンでは問題なくサービスとして正常に実行されますが、疑問に思っていました-このWCFサービスを通常のクラスとして使用できますか? のようなことを言う

public static void main (String [] args) {
    MyWcfService service = new MyWcfService ();
    /* Code to set-up and start listening for requests... */
}

それとも、単に自分のマシンでサービスとして実行する必要がありますか?

4

2 に答える 2

2

何を達成したいかによって異なります:

  • クラスの機能を使用する場合、はい、それをインスタンス化してそのメンバーを呼び出すことができます
  • それを実際の WCF サービスとして使用する場合は、いいえ、最初にホストする必要があります。IIS または Windows サービスなど。
于 2013-01-25T23:45:35.723 に答える
0

はい、それが必要な場合は、コンソール アプリケーションで WCF サービスを自己ホストできます。WCF サービスをホストするために IIS または Windows サービスは必要ありません。これは開発とデバッグには非常に便利ですが、本番環境にはおそらく必要ありません。詳細な例については、これを参照してください。以下のコードでエンドポイントを完全に構成するように例を変更しました。繰り返しますが、常に欲しいものではありません。

public static void Main()
{
    MyWcfService instance = new MyWcfService();
    using (ServiceHost serviceHost = new ServiceHost(instance))
    {
        var endpoint = serviceHost.AddServiceEndpoint(typeof(IMyWcfService), new NetTcpBinding(), "net.tcp://localhost:8000/MyWcfService");
        serviceHost.Open();

        // The service can now be accessed.
        Console.WriteLine("The service is ready at {0}", endpoint.Address);
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();
    }
}

これは単一のインスタンスを使用してすべての呼び出しを処理することに注意してください。通常、WCF は必要に応じてサービス クラスのインスタンスを作成します。

于 2013-01-26T05:19:43.827 に答える