Файл конфигурации веб-API WCF для IIS

Я реализовал безотказную службу с веб-API WCF и хочу опубликовать ее в IIS. В процессе разработки я использовал сервис как консольное приложение, и вся настройка производилась через API. Теперь я пытаюсь опубликовать службу как приложение ASP.NET, и единственный способ, который я вижу, - это каким-то образом перенести всю конфигурацию в файл веб-конфигурации.

Вот закодированная конфигурация:

var cfg = HttpHostConfiguration.Create()
                .AddMessageHandlers(typeof(AllowCrossDomainRequestHandler));

using (var host = new HttpConfigurableServiceHost(typeof(RESTfulService), cfg , new Uri("http://localhost:8081")))
            {
                var endpoint = ((HttpEndpoint)host.Description.Endpoints[0]);  //Assuming one endpoint
                endpoint.TransferMode = TransferMode.Streamed;
                endpoint.MaxReceivedMessageSize = 1024 * 1024 * 10;  // Allow files up to 10MB

                host.Open();
                Console.WriteLine("Host opened at {0} , press any key to end", host.Description.Endpoints[0].Address);
                Console.ReadKey();
            }

Как должен выглядеть мой файл web.config, чтобы отразить эту конфигурацию? Или есть другой подход вместо использования ASP.NET?

Любая помощь приветствуется.


person aumanets    schedule 07.07.2011    source источник


Ответы (1)


Если вы хотите сохранить существующую конфигурацию, вы можете поместить все настройки конфигурации в метод и вызвать его из метода global.asax Application_Start(). Все методы Global.asax будут вызываться в WCF так же, как и в ASP.NET.

Или вы можете связать свои службы с пользовательскими ServiceHostFactory и ServiceHost, в которых есть вся конфигурация (это подход, который я использую в своем текущем приложении).

person CodingWithSpike    schedule 07.07.2011
comment
ServiceHost из WCF, а не из веб-API WCF, верно? Используя ServiceHost, я потеряю все преимущества, которые предлагает веб-API WCF. - person aumanets; 08.07.2011
comment
Да, я думаю, ты прав. Веб-API WCF предоставляет WebServiceHost вариант ServiceHost, но он не предоставляет столько возможностей, сколько обычный WebAPI... Они действительно усложнили и без того сложную структуру, не так ли? :) - person CodingWithSpike; 08.07.2011
comment
Они добавили простой и более организованный способ создания сервисов типа RESTful. Веб-API WCF - это только версия Preview 4, я считаю, что этот API будет улучшен в будущем. Я думаю, что пока буду придерживаться жестко закодированной версии на стороне сервера. Спасибо, ценю вашу помощь. - person aumanets; 08.07.2011