Impossible D'activer le service WCF
je travaille sur WCF et ça a bien marché sur localhost. Après que je l'ai placé sur le serveur de production, il thows une exception
le service demandé,'http://global-kazway.kz/Service1.svc<!--7 ne pas être activé. Voir les journaux de trace de diagnostic du serveur pour plus informations
je suis nouveau dans les Services et j'essaie de résoudre ce problème depuis presque 3 heures.
Ici App.config
de la client;
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections></configSections>
<connectionStrings>
<add name="TestProject.Properties.Settings.DBConnectionString" connectionString="Data Source=.SQLEXPRESS;AttachDbFilename=C:UsersDocumentsvisual studio 2010ProjectsTestProjectTestProjectAppDataDB.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /><add name="DBEntities" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.SQLEXPRESS;attachdbfilename=C:UsersDocumentsvisual studio 2010ProjectsTestProjectTestProjectAppDataDB.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /><add name="DBEntities1" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.SQLEXPRESS;attachdbfilename=|DataDirectory|AppDataDB.mdf;integrated security=True;user instance=True;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /></connectionStrings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://global-kazway.kz/Service1.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1" contract="kazwayServiceReference.IService1"
name="BasicHttpBinding_IService1" />
</client>
</system.serviceModel>
</configuration>
6 réponses
la première étape pour résoudre un problême, une application WCF consiste à ouvrir un navigateur et à taper dans l'URI de service. Donc basé sur le client: vous navigueriez vershttp://global-kazway.kz/Service1.svc
Maintenant voir quel genre de résultats que vous obtenez. Exception? Le service de l'écran? Habituellement, vous pouvez obtenir votre meilleures informations de cet écran! Parfois, il indique ce que votre problème est tel que manquer un comportement.
Comparez votre web.config avec le web déployée.config entrée. Vous y trouverez peut-être aussi quelque chose. Enfin, vous aurez peut-être juste à gérer la sécurité sur votre dossier. Mais l'affichage du navigateur pourrait tout vous expliquer très clairement.
je travaille sur un projet et j'ai fait face au même problème. Quand j'ai vérifié l'Observateur d'Événements pour tracer l'erreur, j'ai trouvé où était le problème.
Observateur d'Événements de message:
Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/7540993
Exception: System.ServiceModel.ServiceActivationException: The service '/CODWebService/Service1.svc' cannot be activated due to an exception during compilation. The exception message is: Memory gates checking failed because the free memory (164065280 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.. ---> System.InsufficientMemoryException: Memory gates checking failed because the free memory (164065280 bytes) is less than 5% of total memory. As a result, the service will not be available for incoming requests. To resolve this, either reduce the load on the machine or adjust the value of minFreeMemoryPercentageToActivateService on the serviceHostingEnvironment config element.
puis j'ai ajouté le code ci-dessous au site web de mon service.fichier de configuration.
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="1" />
Cet élément doit être placé dans <system.serviceModel>
je travaille sur WCF et ça a bien marché sur localhost.Après que je l'ai placé sur le serveur de production, il me thows une exception "le service demandé, 'http://global-kazway.kz/Service1.svc" n'a pas pu être activé. voir les journaux de trace de diagnostic du serveur pour plus d'informations"
cet article de MSDN décrit comment configurer le traçage sur le serveur. Une fois que vous avez fait que vous pouvez regarder les journaux de trace de diagnostic du serveur, et aura de chances de trouver le problème.
j'ai pu résoudre le problème en suivant les étapes ci-dessous en utilisant Visual Studio 2013:
- Aller à votre projet dossier où vous avez votre *.fichier svc
- Clic Droit *.svc fichier --> affichage dans le navigateur
- valider si vous êtes capable de parcourir le service
- allez dans votre dossier de projet où vous avez votre application.fichier de configuration ou où vous le voulez pour consommer le service.
- clic Droit ->Ajouter--> Référence Du Service
- Cliquez sur Découvrir-->Sous Services, Sélectionnez le Service-->Donner le nom souhaité pour votre service de référence-->Cliquez sur OK
- il va créer " ServiceReference1 "sous le dossier" Service References " et créer/mettre à jour automatiquement app.fichier de configuration
Pour avoir une description plus détaillée de l'erreur veuillez insérer ce code dans votre site web.fichier de configuration du service:-
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
Ensuite utiliser ce service dans votre service comme ceci :-
<service name="MyService" behaviorConfiguration="MyServiceBehavior" >
<endpoint address="" binding="basicHttpBinding" xxxx="" xxxxx="" xxxxx="" xxxx="" xxxx="" />
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
<host>
<baseAddresses>
<add baseAddress="http://ServerAddress:AnyPortIfspecified/VirtualDirname"/>
</baseAddresses>
</host>
</service>
Cela vous donnera une description détaillée de l'erreur.
La deuxième chose que vous pouvez essayer est de vérifier:-
<host>
<baseAddresses>
<add baseAddress="http://ServerAddress:AnyPortIf specified/VirtualDir name"/>
</baseAddresses>
</host>
assurez-vous que votre adresse de base n'est pas localhost. TC
première chose prenez l'adresse url du service (par exemple http://youservice:808/Area.Service / Service.svc) et le mettre dans le champ url du navigateur pour vérifier si le service est en cours d'exécution.
dans mon cas, il ne courait pas.
le serveur distant avait un processus qui utilisait beaucoup ou CPU et RAM (processus sql)
cela bloquait le service.
en fermant/arrêtant certains processus dans le Gestionnaire de tâches sur le serveur distant récupéré le service.