WCF, Service de la valeur de l'attribut dans la ServiceHost la directive n'a pas pu être trouvé
Je suis en train d'héberger mon service avec IIS 6, mais je continue à obtenir cette exception.
Server Error in '/WebServices' Application.
--------------------------------------------------------------------------------
The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
[InvalidOperationException: The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found.]
System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) +6714599
System.ServiceModel.HostingManager.CreateService(String normalizedVirtualPath) +604
System.ServiceModel.HostingManager.ActivateService(String normalizedVirtualPath) +46
System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) +654
[ServiceActivationException: The service '/WebServices/dm/RecipientService.svc' cannot be activated due to an exception during compilation. The exception message is: The type 'QS.DialogManager.Communication.IISHost.RecipientService', provided as the Service attribute value in the ServiceHost directive could not be found..]
System.ServiceModel.AsyncResult.End(IAsyncResult result) +15626880
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +15546921
System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +265
System.ServiceModel.Activation.HttpModule.ProcessRequest(Object sender, EventArgs e) +227
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171
--------------------------------------------------------------------------------
Version Information: Microsoft .NET Framework Version:2.0.50727.3082; ASP.NET Version:2.0.50727.3082
Je n'ai absolument aucune idée, sauf qu'il semble qu'il ne trouve pas mon assemblées. Le code doit être correctement compilé avec les classes publiques.
Voici mon .svc fichier:
<%@ ServiceHost Language="C#" Debug="true" Service="QS.DialogManager.Communication.IISHost.RecipientService" CodeBehind="RecipientService.svc.cs" %>
J'ai essayé de créer un très très simple service qui contient juste rien à voir si ce serait le travail, mais encore la même vieille erreur s'affiche.
The type 'IISHost.Service1', provided as the Service attribute value in the ServiceHost directive could not be found.
- Pouvez-vous montrer le contenu de service.svc?
- Si il référence à un pré-compilé type dans une assemblée, avez-vous le copier dans le répertoire bin dans le vroot?
- <%@ ServiceHost Language="C#" Debug="true" Service="QS.DialogManager.De la Communication.IISHost.RecipientService" CodeBehind="RecipientService.svc.cs" %>
- Merci pour ce détachement, votre Q&A juste fixé le même problème pour moi.
- Commentaire puisque je ne peux pas Enregistrer apparemment...
- merci!! Pour moi, c'était le dossier bin c'est le répertoire est incorrect. Déplacé d'un niveau et c'est tout.
Vous devez vous connecter pour publier un commentaire.
Option Un:
Ce message est souvent due à un IIS 7 config problème. Si vous avez utilisé pour la création d'un répertoire virtuel pointant vers le dossier où se trouve ce service, qui ne fonctionne plus. Maintenant, vous devez utiliser l'option "Créer une Application..." option à la place.
Autres Options:
Le problème pourrait aussi être un dans un autre espace de noms dans le fichier svc que c'est dans svc.cs fichier.
Dans svc espace de noms de fichiers doivent être dans le format suivant.
Je sais que c'est probablement le "évident" réponse, mais il a trébuché moi un peu. Assurez-vous que il ya une dll du projet dans le dossier bin. Lorsque le service a été publié, le gars qui l'a publié supprimé les fichiers dll parce qu'il pensait qu'ils étaient dans le GAC. L'un spécifiquement pour le projet (QS.DialogManager.Communication.IISHost.RecipientService.dll dans le cas présent) n'était pas là.
Même erreur pour une raison TRÈS différente.
Cette erreur se produit en raison de l'inadéquation de nom de Service dans .SVC fichier. Probablement que vous pourriez avoir changé le nom de la classe de service est la mise en œuvre de l'interface.La Solution est d'ouvrir .SVC fichier et correspondre exactement à l'attribut de Service et le Code-behind de l'Attribut. Donc, votre .SVC fichier doit être comme
Cet exemple est pour .svc fichier à l'aide du langage C#, avec le débogage activé, le Service de classe implémentant l'interface et cette classe est à l'intérieur de l'app du dossier avec le nom du Service.cs et le Produit est de l'espace de noms de la classe de Service.
Aussi, Merci de faire des changement dans le fichier de configuration du service.
Service="MyServicesProxy.Client.OpenClientService"
Vérifiez que vous êtes de référencement de type correct de la ServiceHost directive dans le .svc fichier. Voici comment...
J'ai eu la même Exception, c'est en raison du Type pas correctement mentionné dans le .svc fichier
J'ai corrigé avec ci-dessous correctif.
si votre .svc.cs a la classe comme ça
pour ce la .svc fichier devrait ressembler à ceci
Vous devez configurer votre dossier bin chemin d'accès au service local de la corbeille.
C:\Folder\SVC_ServiceFolder\bin
. J'ai dû supprimer certains en double config balises.J'ai pratiquement résolu le même problème . Voici ma suggestion -- L'erreur signifie que l'objet référencé dans l'attribut de Service n'est pas trouvé. Pour que l'objet soit trouvé, l'application ou la bibliothèque doit construire de sortie dans le dossier bin.
Vous pouvez modifier la page de propriétés de l'application et de spécifier le chemin de la sortie à 'bin'.
J'ai eu ce problème - mon type de service était dans le GAC. Cela fonctionnerait si j'ai ajouté la dll contenant le type dans le dossier bin, mais comme il était dans le GAC, ce n'était PAS ce que je voulais. J'ai finalement ajouté à cela le web.config pour le service
et il a travaillé sans avoir besoin de toutes les dll dans le dossier bin.
Si vous avez renommé rien vérifier l' (Propriétés/)
AssemblyInfo.cs
est correct, ainsi que l'en-tête dans le fichier service.ServiceName.svc
Alignement avec votre espace de noms dans votre
Service.svc.cs
Deux touches pour certains des saveurs de Services, la valeur de l'attribut dans la ServiceHost la directive n'a pas pu être trouvé'-problème: (1) Si vous travaillez dans Silverlight, vous devez utiliser le Silverlight, WCF Service de l', non pas le non-Silverlight, WCF Service; ce sera la mise à jour Web.Config pour les liaisons et permettre le type à être visible; (2) Correspondent le nom de la classe dans le nouveau service, le nom du Service (le but ici est de faire un fichier wsdl,... de sorte que vous savez le service de la fonctionnalité est exposée à votre client Silverlight et sur le Web; il permet d'avoir le service correspond à la classe. Si vous obtenez les noms dévorés, vous devrez éditer le Web.Config en 3 endroits (serviceBehaviors, des services et des liaisons).
Il y avait tellement sincère tente d'aider les gens avec ce problème qui n'étaient pas utiles pour moi qu'il convient de souligner que cette écriture-up est une solution de Silverlight et il ne peut pas demander à quelqu'un de ne pas utiliser Silverlight 3 dans un contexte client/configuration Web.
Espère que cela aide.
J'ai eu le même problème, mais aucune idée de ce qu'il fait. Je l'ai Résolu en changeant de Débogage pour la Libération et l'Exécuter à l'aide de Debug/Démarrer une Nouvelle Instance. Après cela, il a couru dans les deux Release et Debug. C'était magique...
J'ai aussi rencontré ce problème en essayant de Microsoft.ServiceModel.Les échantillons.Calculatrice de FMC de l'échantillon. Je suis à l'aide de IIS 5.1. J'ai résolu cela en veillant à ce que le site a été auto-généré (servicemodelsamples) n'est pas une application. Cliquez-droit sur le dossier, cliquez sur "Propriétés" et cliquez sur le bouton "Créer".
J'ai eu mon service dll dans le dossier bin où le svc fichier a été la résidence. Le déplacement de la dll à la racine du dossier bin résolu le problème.
Dans mon cas, Clic Droit sur le Répertoire Virtuel et Sélectionnez "Convertir en Application" travaillé!
Je pose cette erreur aujourd'hui, la raison était; IIS utilisateur n'a pas la permission d'accéder au dossier de l'application. J'ai donné les autorisations de lecture pour l'application du dossier racine.
Cela peut sembler trivial, mais il vaut la peine de mentionner:
Vous devez construire le service (dans Visual Studio) - puis une DLL sera créé dans le
sous-répertoire bin.
Lorsque le service est "déployés" sur un serveur que bin doit disposer de cette DLL fichier - sinon, cette erreur sera levée...
Ajouter une référence de service au sein de votre service ou de copier dll.
La construction de la solution avant d'ajouter le service de référence a résolu mon problème.
J'ai eu cette erreur lorsque vous essayez d'ajouter le Service de référence pour la première Silverlight activé la WCF dans la même solution. Je viens de construire la .Projet Web et il a commencé à travailler..
J'ai eu le même problème, trouvé ce fil, tout essayé mais nogo.
J'ai alors passé 4 heures de temps perdu.
Puis j'ai trouvé que les paramètres de compilation avait changé de 64bits pour x86. Quand j'ai changé de nouveau à 64bits, il a travaillé. Ne sais pas exactement pourquoi, mais peut-être que le pool d'applications IIS n'a pas été défini pour autoriser les applications 32 bits.
Assurez-vous de balisage (svc) fichier a l'attribut de service avec l'espace de noms.nom de la classe et du code-behind sera classname.svc.cs
Reconstruire la solution
Redémarrez l'application des piscines de IIS local une fois.