Я использую средство WCF для службы, размещенной в WAS (привязка net.tcp в iis7), и испытывает странную проблему только при запуске холодного приложения (т. Е. Еще не запущен).ПОМОЩЬ! - DefaultServiceHostFactory выполняется до создания application_startup и контейнера
Следующее утверждение должно быть выполнено при первом экземпляре моего контейнера.
DefaultServiceHostFactory.RegisterContainer(c.Kernel);
Когда услуга запрашивается, я получаю следующее исключение в моем WCF файл_трассировки
Kernel был нулевым, ты забыл назвать DefaultServiceHostFactory.RegisterContainer()
Проблема, как представляется, что ServiceHostFactory пытается создать экземпляр хоста службы до того, как мой контейнер будет создан.
Примечание:
- Это исключение происходит ПЕРЕД Application_Start выполняется
- Если приложение работает (и контейнер был инициализирован), то эта служба будет работать, как ожидалось. Приложение можно запустить, перейдя на соответствующий сайт IIS через HTTP или запустив сеанс отладки Visual Studio.
шаги, чтобы воссоздать Issue
- ВЫПУСКАЙТЕ IISReset к закрытию всех пулов приложений IIS.
- Вызов службы в вопросе
трассировка WCF выплевывает:
System.ServiceModel.ServiceActivationException: Служба «/abcd.svc» не может быть активирован по причине исключения во время компиляции. Сообщение об исключении: Исключение было выбрано целью вызова. --- > System.Reflection.TargetInvocationException: Исключение было выбрано целью вызова. --- > System.ArgumentNullException: Ядро было null, вы забыли позвонить по умолчаниюServiceHostFactory.RegisterContainer()? Имя Параметр: ядро в Castle.Facilities.WcfIntegration.WindsorServiceHostFactory`1..ctor (Ikernel ядро) в Castle.Facilities.WcfIntegration.DefaultServiceHostFactory..ctor()
Скажите, пожалуйста, если мне нужно больше объяснить мою ситуацию или сделать ее более ясными. –