2010-12-08 19 views
0

J'utilise wcf library dans windows service ma wcf libray contient une dll de projet qui contient une couche d'accès aux données. Lorsque je tente de démarrer mon service Windows alors mon service Windows ne peut pas démarrerBibliothèque Wcf dans Windows Service

Exception:

service ne peut pas être démarré. System.ServiceModel.FaultException: Le serveur n'a pas pu traiter la demande en raison d'une erreur interne. Pour plus d'informations sur l'erreur, tour ou sur IncludeExceptionDetailInFaults (soit de ServiceBehaviorAttribute ou de la configuration comportement) sur le serveur afin de envoyer les informations d'exception retour à le client ou activer le suivi selon la documentation Microsoft .NET Framework 3.0 SDK et inspectez les journaux de trace du serveur .

trace de la pile de serveur: à System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood (message réponse, faute MessageFault, l'action Chaîne version MessageVersion, FaultConverter faultConverter) à System.ServiceModel.Channels.ServiceChannel.HandleReply (ProxyOperationRuntime fonctionnement, ProxyRpc & RPC) à System.ServiceModel.Channels.ServiceChannel.Call (String l'action, à sens unique booléenne, opération de ProxyOperationRuntime, Object [] ins, objet [] out, temporisation TimeSpan ) à System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (...

Pour cela, nous utilisons dans l'App Config

Mon appel de service est

using (ServiceReference1.Service1Client c = new ServiceReference1.Service1Client()) 
      { 
       c.GetZvol(); 
       c.ChannelFactory.Close(); 
       c.Close(); 
      } 

Mais après avoir ajouté cela, il GIVS une autre exception tandis que les fenêtres du démarrage du service

Exception:

Le service ne peut pas être démarré. System.ServiceModel.CommunicationObjectFaultedException: L'objet de communication, System.ServiceModel.Channels.ServiceChannel, ne peut pas être utilisé pour la communication parce qu'il est dans l'état Faulted.

trace de pile du serveur: à System.ServiceModel.Channels.CommunicationObject.Close (timeout TimeSpan )

Exception relancée à [0] à System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) à System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & MSGDATA, le type Int32) à System.ServiceModel.ICommunicationObject.Close (TimeSpan timeout) à System.ServiceModel.ClientBase 1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout) at System.ServiceModel.ClientBase 1.Fermer() à System.ServiceModel.ClientBase`1.System.IDisposable.Dispose() dans à ClassDemo.Class1.CreateFile() C: \ Users \ Vikram \ Documents \ Visual Studio 2010 \ Projects \ mcWindowsService \ ClassDemo \ Class1.cs: ligne 21 à mcWindowsService.Service1.OnStart (String [] args) ...

S'il vous plaît quelqu'un me dire la solution

Répondre

1

hôte Vous dévers et appeler un WCF service du même processus. Votre service Windows doit uniquement héberger la DLL wcf et vous pouvez y effectuer des appels à partir d'un autre processus, comme une application WinForms ou une application Web.

+0

im workig sur la sauvegarde de l'informatique en nuage que j'utilise le service Windows qui surveille la base de données et cette base de données surveillant la logique métier dans le service wcf c'est pourquoi j'ai besoin d'héberger et d'appeler ce service solution – Vikram

+0

rechercher dans ce fil Comment communiquer avec un service WCF à partir de son propre service de fenêtre hôte: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/4943d3f6-99ba-4af4-9a96- 89b117402f02 –

+0

ici j'héberge mon service sur l'événement onstart de service de Windows et dans ce service de Windows j'utilise l'autre projet dll dans ce projet nous ajoutons la référence de service qui est hébergée dans l'événement onstart et que wcf contenant un autre projet dll cette DLL contenant le code de couche dataacces. si vous ne pouvez pas comprendre si vous n'avez aucune mention s'il vous plaît envoyez-moi votre adresse mail je vous ai envoyé mon application merci – Vikram