Перенос службы WCF на виртуальную машину Azure

У меня есть служба службы WCF, которая хорошо работает при размещении в локальном IIS, но дает следующее исключение при размещении в IIS виртуальной машины Azure:

DispatchOperation requires Invoker. 
Exception Details: System.InvalidOperationException: DispatchOperation requires Invoker

Трассировки стека :

[InvalidOperationException: DispatchOperation requires Invoker.]
   System.ServiceModel.Dispatcher.DispatchOperationRuntime..ctor(DispatchOperation operation, ImmutableDispatchRuntime parent) +17276262
   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime..ctor(DispatchRuntime dispatch) +824
   System.ServiceModel.Dispatcher.DispatchRuntime.GetRuntimeCore() +114
   System.ServiceModel.Dispatcher.ChannelDispatcher.OnOpened() +520
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +766
   System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +260
   System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +742
   System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +126
   System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +901

[ServiceActivationException: The service '/PidPlusService.svc' cannot be activated due to an exception during compilation.  The exception message is: DispatchOperation requires Invoker..]
   System.Runtime.AsyncResult.End(IAsyncResult result) +650220
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +210733
   System.Web.CallHandlerExecutionStep.OnAsyncHandlerCompletion(IAsyncResult ar) +282

У меня есть файл svc, файл web.config и библиотеки DLL, которые есть в службе. Сервисный проект представляет собой проект библиотеки классов и является частью решения, которое генерирует библиотеки DLL. Есть ли что-то, что нужно изменить в коде для хостинга в Azure? Или это проблема конфигурации?


person Abhay Kumar    schedule 13.10.2013    source источник


Ответы (1)


Вам нужно будет настроить виртуальную машину для поддержки WCF, так же, как вы это делали на своей локальной машине IIS. Убедитесь, что эти параметры настроены на ваша виртуальная машина в Azure.

Кроме того, вам может потребоваться включить в компонентах Windows «Активацию WCF Http» (.NET Framework 3.5). Если вы ориентируетесь на .NET Framework 4.5, убедитесь, что «Службы WCF» (расширенные службы .NET Framework 4.5) включены.

person Rick Rainey    schedule 21.10.2013
comment
Спасибо за ваш ответ и извините за поздний ответ, но я все еще сталкиваюсь с проблемой. Я включил все необходимые функции / роли через диспетчер серверов, так как я использую WS2012. - person Abhay Kumar; 24.10.2013