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 方法,如控制台应用程序。不存在 main 方法时,如何定义 WCF 服务以启动 WebServiceHost?

4

2 回答 2

0

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

于 2013-03-20T12:14:45.453 回答
0

我找到了一个非常简单的方法来解决这个问题。为了告诉 WCF 改用 web 服务,只需将其添加到 .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" %>
于 2013-03-21T09:45:51.150 回答