1

すべてのアドレスと構成が構成ファイルにある作業中のコンソール アプリケーションがあります。しかし、このコードを WCF サービス アプリケーションに移動しようとすると、あらゆる種類のエラーが発生します。

class Program
{
    static void Main(string[] args)
    {

        WebServiceHost host = new WebServiceHost(typeof(ImageService));
        host.Open();

        Console.WriteLine("Service up");
        Console.ReadLine();

        host.Close();
    }
}

問題は、WCF サービス アプリケーションが自動的に開始され、コンソール アプリのようなメイン メソッドがないことです。main メソッドが存在しない場合に WebServiceHost を開始するように WCF サービスを定義するにはどうすればよいですか?

4

2 に答える 2

0

この問題の非常に簡単な解決策を見つけました。代わりに Web サービスを使用するように WCF に指示するには、これを .svc ファイルに追加するだけです。

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

どういうわけか、このファイルを Visual Studio で開くことができなかったので、プロジェクト フォルダーに移動し、メモ帳を使用して開きました。私のサービス .svc-file は次のようになります。

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.Service1" CodeBehind="Service1.svc.cs" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>
于 2013-03-21T09:45:51.150 に答える
0

ServiceBaseクラスから継承して独自のサービスを作成する必要があります。メソッドをオーバーライドOnStart()し、実装で WCF サービスを開きます。メソッドをオーバーライドOnStop()し、実装で WCF サービスを閉じます。

于 2013-03-20T12:14:45.453 に答える