将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时,没有主方法存在?
您必须通过继承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" %>