AutoStart/Pre -теплые функции, не работающие в службе IIS 7.5/WCF

Для тестирования множества головных болей, связанных с реализацией IIS/WCF с нуля, я создал службу HelloWorld, и клиент очень хорошо прошел ()здесь . Я добавил конечные точки для net.tcp, и служба работает правильно с конца -по конец -для обеих привязок подIIS 7.5(в Windows 7 )в своем собственном ApplicationPoolпод названием HW.

Я пытаюсь заставить работать анонсированные функции AutoStart и Preload (или «предварительного -теплого кэширования» ). Я следовал инструкциям, изложенным здесь и здесь (, очень похожими друг на друга, но всегда полезно иметь второе мнение )очень внимательно. Это означает, что я

1 )Устанавливаю пул приложений startMode...

 
     
      

2 )... включен serviceAutoStartи устанавливаю указатель на мойserviceAutoStartProvider


    
    

3 )... и назвал указанного провайдера с GetType().AssemblyQualifiedNameкласса, полностью перечисленным ниже

 
     


using System;

namespace MyWCFServices
{
    public class Preloader : System.Web.Hosting.IProcessHostPreloadClient
    {
        public void Preload(string[] parameters)
        {
            System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\temp\PreloadTest.txt");
            sw.WriteLine("Preload executed {0:G}", DateTime.Now);
            sw.Close();
        }
    }
}

. Увы, вся эта ручная настройка, плюс пара вызовов iisreset, и я ничего не получаю. Процесс w3wp.exeне запускается в диспетчере задач (, хотя я получаю его, если запускаю HelloWorldClient ), нет текстового файла и, прежде всего, нет удовлетворения.

Ужасно скудное обсуждение этой функции, как на SO, так и в более широкой сети, и несколько подобных вопросов здесь получили мало внимания, и все они звонят в тревожный звоночек или два. Может быть, напрасно --кто-нибудь из экспертов, которые были на этой самой дороге раз или два, пожелает вмешаться? (Рад предложить полное решение, если вы можете предложить хорошее место для его размещения.)


РЕДАКТИРОВАТЬ:Я попытался сбросить этот путь в методе Preloadв относительную папку App_Data(другой ответ SO предположил, что ), не имеет значения. Также,Я узнал, что процесс w3wp.exeзапускается при простом переходе на локальный хост. Процесс потребляет впечатляющие 17 МБ памяти для обслуживания своего единственного крошечного OperationContract, а по цене предлагает нулевое значение предварительной загрузки. 17 МБ ColdDeadCache.

16
задан downwitch 6 May 2012 в 05:14
поделиться