将WebServiceHost转换为WCF服务应用程序

本文关键字:服务 应用程序 WCF WebServiceHost 转换 | 更新日期: 2023-09-27 18:04:56

我有一个工作控制台应用程序,其中所有的地址和配置都在一个配置文件中。但是当我尝试将此代码移动到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服务应用程序自动启动,没有主方法,像控制台应用程序。我如何定义WCF服务启动WebServiceHost时,没有主方法存在?

将WebServiceHost转换为WCF服务应用程序

您必须通过继承ServiceBase类来创建自己的服务。覆盖OnStart()方法并在实现中打开WCF服务。重写OnStop()方法并关闭WCF服务

我找到了一个非常简单的解决这个问题的方法。为了告诉WCF使用webservice,所需要做的就是将它添加到.svc文件

中。
Factory="System.ServiceModel.Activation.WebServiceHostFactory"

不知怎么的,我无法在Visual Studio中打开这个文件,所以我导航到项目文件夹并用记事本打开它。我的服务。svc文件看起来像这样:

<%@ ServiceHost Language="C#" Debug="true" Service="MyNamespace.Service1" CodeBehind="Service1.svc.cs" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>