Предоставить сервис WCF как asmx (веб-сервис) и разместить в сервисе окон - PullRequest
0 голосов
/ 13 декабря 2011

Я разрабатываю приложение wcf в VS2008.Я хочу разместить эту службу WCF в качестве службы окна.Но я также хочу представить этот сервис как .asmx (веб-сервис).

Возможно ли это сделать?Есть ли способ выставить службу wcf как .asmx (веб-сервис), но нужно разместить в службе окна.

1 Ответ

4 голосов
/ 13 декабря 2011

При размещении в качестве службы Windows вы можете установить базовый адрес своей службы для любого URL-адреса, например:

(Предполагая, что у вас уже есть класс с именем "yourServiceClass", реализующий контракт на обслуживание)

public class ExampleWindowsService : ServiceBase
{
    public ServiceHost host = null;

    public static void Main()
    {
        ServiceBase.Run(new ExampleWindowsService());
    }

    protected override void OnStart(string[] args)
    {
        if (host != null)
        {
            host.Close();
        }
        Uri baseAddress = new Uri("http://localhost:80/yourservice.asmx");
        host = new ServiceHost(typeof(yourServiceClass), baseAddress);
        host.Open();
        Console.WriteLine("Service hosted ...");
    }
}

Затем вы можете добавить нужные конечные точки и поведения либо программно, либо с помощью файла конфигурации. Посмотрите здесь , чтобы найти больше информации о том, как реализовать службу WCF как службу Windows.

...