Service WCF retour “demande de service " ... " ne peut pas être activé” la première fois qu'il est accessible à partir d'un site MVC
Nous avons un service WCF (sans sécurité) qui est accessible par un MVC3 site web.
Sur les ordinateurs des développeurs nous ont pas de problèmes avec elle, mais quand notre TeamCity le programme d'installation génère la centrale de version et le déploie sous IIS7 la première fois qu'on charge la MVC3 site et il accède au service WCF - l'appel de service renvoie le message:
Système.ServiceModel.ServiceActivationException: Le service demandé, 'http://localhost:83/ABCStaticData/StaticDataService.svc" ne peut pas être activé. Voir le serveur de diagnostic des journaux de suivi pour plus d'informations.**
Si nous immédiatement sur le même site, tout fonctionne bien.
La pile serveur piste quand il envoyait le message d'erreur est:
Serveur trace de la pile:
at System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request, HttpWebResponse response, HttpChannelFactory1 factory, WebException responseException, ChannelBinding channelBinding)
at System.ServiceModel.Channels.HttpChannelFactory1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown at [0]: at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at ABC.StaticData.Editor.StaticDataServiceProxy.IStaticDataService.GetAllMarkets()
at ABC.StaticData.Editor.StaticDataServiceProxy.StaticDataServiceClient.GetAllMarkets() in c:\BuildAgent\work\55a3bcc468adcccb\StaticData\ABC.StaticData.Editor\Service References\StaticDataServiceProxy\Reference.cs:line 3195
at ABC.StaticData.Editor.Controllers.MarketsController.<>c__DisplayClass22.<.ctor>b__13() in c:\BuildAgent\work\55a3bcc468adcccb\StaticData\ABC.StaticData.Editor\Controllers\MarketsController.cs:line 263
at ABC.StaticData.Editor.Controllers.MarketsController.Index() in c:\BuildAgent\work\55a3bcc468adcccb\StaticData\ABC.StaticData.Editor\Controllers\MarketsController.cs:line 306
Quelqu'un a une idée sur ce qui pourrait être à l'origine du problème ou de l'endroit où commencer à chercher?
Mise à JOUR: j'ai oublié de mentionner le premier que si nous ensuite de ne pas accéder au site pendant un certain temps et puis retourner en arrière, il donne la même erreur puis travaille encore pour la seconde fois.
UPDATE2: C'est le journal des événements d'entrée de texte:
WebHost failed to process a request.
Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/3043589
Exception: System.ServiceModel.ServiceActivationException: The service '/ABCStaticData/StaticDataService.svc' cannot be activated due to an exception during compilation. The exception message is: Could not load type 'System.Runtime.CompilerServices.AsyncStateMachineAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.. ---> System.TypeLoadException: Could not load type 'System.Runtime.CompilerServices.AsyncStateMachineAttribute' from assembly 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.IsCustomAttributeDefined(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Boolean mustBeInheritable)
at System.Reflection.CustomAttribute.IsDefined(RuntimeMethodInfo method, RuntimeType caType, Boolean inherit)
at System.Reflection.RuntimeMethodInfo.IsDefined(Type attributeType, Boolean inherit)
at Ninject.Infrastructure.Language.ExtensionsForMemberInfo.HasAttribute(MemberInfo member, Type type)
at Ninject.Selection.Heuristics.StandardInjectionHeuristic.ShouldInject(MemberInfo member)
at Ninject.Selection.Selector.<>c__DisplayClassa.<SelectMethodsForInjection>b__9(IInjectionHeuristic h)
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at Ninject.Selection.Selector.<SelectMethodsForInjection>b__8(MethodInfo m)
at System.Linq.Enumerable.WhereArrayIterator`1.MoveNext()
at Ninject.Planning.Strategies.MethodReflectionStrategy.Execute(IPlan plan)
at Ninject.Planning.Planner.<>c__DisplayClass1.<CreateNewPlan>b__0(IPlanningStrategy s)
at Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map[T](IEnumerable`1 series, Action`1 action)
at Ninject.Planning.Planner.CreateNewPlan(Type type)
at Ninject.Planning.Planner.GetPlan(Type type)
at Ninject.Activation.Providers.StandardProvider.Create(IContext context)
at Ninject.Activation.Context.Resolve()
at Ninject.KernelBase.<>c__DisplayClass10.<Resolve>b__c(IBinding binding)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
at Ninject.Planning.Targets.Target`1.GetValue(Type service, IContext parent)
at Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent)
at Ninject.Activation.Providers.StandardProvider.GetValue(IContext context, ITarget target)
at Ninject.Activation.Providers.StandardProvider.<>c__DisplayClass4.<Create>b__2(ITarget target)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Ninject.Activation.Providers.StandardProvider.Create(IContext context)
at Ninject.Activation.Context.Resolve()
at Ninject.KernelBase.<>c__DisplayClass10.<Resolve>b__c(IBinding binding)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
at Ninject.Planning.Targets.Target`1.GetValue(Type service, IContext parent)
at Ninject.Planning.Targets.Target`1.ResolveWithin(IContext parent)
at Ninject.Activation.Providers.StandardProvider.GetValue(IContext context, ITarget target)
at Ninject.Activation.Providers.StandardProvider.<>c__DisplayClass4.<Create>b__2(ITarget target)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at Ninject.Activation.Providers.StandardProvider.Create(IContext context)
at Ninject.Activation.Context.Resolve()
at Ninject.KernelBase.<>c__DisplayClass10.<Resolve>b__c(IBinding binding)
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
at Ninject.Extensions.Wcf.BaseNinjectServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses)
at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
--- End of inner exception stack trace ---
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)
at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)
Process Name: w3wp
Process ID: 3248
Juste un autre point que nous sommes en train de développer à l'aide .NET 4.5 et Visual Studio 2012 RC.
- Qu'est-ce que l'exception interne?
- Il n'y a pas d'exception interne.
- Êtes-vous sûr? Quelle est la meilleure entrée de journal des événements du texte?
- Entrée de journal des événements est au-dessus de maintenant - à l'exception de l'arbre lors du tracé n'était que le premier et en le poussant à l'intérieur exception de la capture a donné une référence nulle.
- Je ne suis pas dans un endroit pratique afin de valider, mais ça y ressemble ASP.NET est en cours d'exécution en vertu de l'framework v4.0, compte tenu de ce message dans vos exception:
from assembly 'mscorlib, Version=4.0.0.0
. Êtes-vous sûr .NET 4.5 est installé correctement sur le serveur? Aussi, vous savez framework 4.5 est pas encore pris en charge pour les applications de production, droit? - Je vais vérifier avec les membres de l'équipe qui a configuré le teamcity de construction/déploiement du serveur, mais notez qu'il n'travailler la deuxième fois que vous frappez le service. Nous pouvons répéter la même erreur par la simple navigation à l' .svc sur le serveur lui-même - mais encore une fois, c'est bien la deuxième fois que vous accédez à la même .svc fichier. Et oui, nous sommes conscients de l'4.5/soutien à la production de la situation.
- Aussi, ne la même chose sur les machines de dev la première fois, si vous tuez le local d'accueil? Vous pouvez y accéder en cliquant sur l'icône dans la barre d'état système.
- Non, il n'est pas - nous sommes à l'aide de IIS sur le dev des machines aussi. Si nous tuer ou IIS w3wp.exe et puis accédez à l' .svc fichier, il s'agit bien de la première fois.
- Nous avons juste vérifié et .NET 4.5, est définitivement installé sur la construction/déploiement du serveur. Mais c'est clairement essayant d'utiliser 4.0 sur le premier accès AsyncStateMachineAttribute n'est évidemment pas dans mscorlib de 4,0 mais dans la version 4.5.
- Quelle est la cible d'exécution d'une piscine, le service est en cours d'exécution en vertu de l'?
- La cible d'exécution de l'application de la piscine est ".NET Framework v4.0.30319". Notez qu'il n'y a pas un v4.5 disponible dans la liste sur le serveur de déploiement de la dev machines.
Vous devez vous connecter pour publier un commentaire.
Je viens d'arriver à résoudre le même problème de l'aléatoire " du Système.ServiceModel.ServiceActivationException' (la levée d'une exception, puis exécutez le second coup.). La raison de l'exception dans mon cas était un manque de mémoire sur le serveur. Pour confirmer le problème de mémoire, vous pouvez effectuer les opérations suivantes:
Application de l'appel de service web:
WCF journal de suivi: rien de connecté.
Sur le serveur d'hébergement de service wcf (le même que l'appel de l'application de la tva) dans les journaux des événements à l'exception de beaucoup de conneries info que j'ai trouvé:
Détails d'un événement personnalisé:
Donc la solution pour moi a été:
1. ajouter plus de ram
2. la libérer de la ram (solution temporaire)
3. mise à jour de configuration web du service web:
J'ai eu ce problème aussi, et tout simplement mettre
sous
<system.serviceModel>
Et tout fonctionne bien.
serviceHostingEnvironment
balise n'est pas fermée, elle doit se terminer par/>
plutôt que>
.J'ai frappé de la même "impossible de charger le type de Système.Moment de l'exécution.CompilerServices.AsyncStateMachineAttribute'", que j'ai découvert était parce que j'avais construit mon application en utilisant VS 2012 RTM, mais a ensuite essayé de le déployer sur une machine qui n'avaient 4.5 Beta. Le AsyncStateMachineAttribute est un nouveau type de ajouté après la Bêta.
Est .svc extension enregistré sous IIS?
Voir MSDN pour plus de détails.
J'ai eu ce problème aussi, ce que j'ai fait est:
Ouvrir le fichier yourService.svc et assurez-vous que votre service est configuré, et le code-behind ressemble à ceci:
J'ai résolu mon problème de cette façon. J'espère que cela aide!
Vérifier que la Mémoire du serveur hébergent les services n'est pas complète.
Cette erreur se produit si vous installez IIS après l'installation de Windows Communication Foundation (WCF). Pour le fixer, il suffit de lancer la commande suivante:
Source: IIS Service Hébergé Échoue
Je suis tombé sur cette même question aujourd'hui, et au lieu de RAM le problème c'était de l'espace disque. Après la libération de l'espace, j'ai dû redémarrer l'Application de la Piscine et le problème a été résolu.
À chaque fois j'ai le même problème, j'ai redémarré mon ordinateur et il fonctionne bien. Il libère de la mémoire