Échec de l'ajout d'un service. Des métadonnées de Service peuvent ne pas être accessibles. Assurez-vous que votre service est en cours d'exécution et d'exposer les métadonnées.`
EDIT:
Après j'ai modifié le web.config
et je n'ai pas d'erreur c'est bien.... puis-je ajouter une nouvelle page (html) et d'écrire ce petit code pour utiliser le service comme ceci:
$("#btn12").click(function (event) {
$.getJSON('http://localhost:3576/MyService.svc/GetCurrentUser', {},
function (data) {
alert(data);
});
//return false;
});
Je vois l'erreur suivante dans mon FireBug:
http://localhost:3576/MyService.svc/GetCurrentUser
400 Bad Request
Note: j'ai ajouté de la page html sur le même wcf projet et l'exécution du projet elle-même, donc je suis en supposant que le service est également en cours d'exécution ...
Ce qui ne va pas ici?
FIN MODIFIER
Je viens de créer un nouveau services wcf et quand j'appuie sur la touche f5 de VS et j'ai cette erreur au Client Test WCF fenêtre :
Pas réussi à ajouter un service. Des métadonnées de Service peuvent ne pas être accessibles. Assurez-vous que votre service est en cours d'exécution et d'exposer les métadonnées.
Erreur: Impossible d'obtenir les Métadonnées à partir de http://localhost:3696/MobileService.svc Si c'est un Windows (R) de la Communication de la Fondation de service auquel vous avez accès, veuillez vérifier que vous avez activé la publication des métadonnées à l'adresse spécifiée. Pour obtenir de l'activation d'édition de métadonnées, veuillez vous référer à la documentation MSDN à l' http://go.microsoft.com/fwlink/?LinkId=65455.
WS-Échange de Métadonnées Erreur
URI: http://localhost:3696/MyService.svc
Les métadonnées contiennent une référence qui ne peut pas être résolu:"http://localhost:3696/MyService.svc'.Il n'y a pas de point de terminaison de l'écoute à http://localhost:3696/MyService.svc que peut accepter le message. Cela est souvent causé par une mauvaise adresse ou du SAVON d'action. Voir InnerException, le cas échéant, pour plus de détails.
Impossible de se connecter au serveur distant
Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusé 127.0.0.1:3696
HTTP GET Erreur
URI: http://localhost:3696/MyService.svc
Il y a une erreur de téléchargement 'http://localhost:3696/MyService.svc'.
Impossible de se connecter au serveur distant
Aucune connexion n'a pu être établie car l'ordinateur cible l'a expressément refusé 127.0.0.1:3696
Ma config:
<behaviors>
<endpointBehaviors>
<behavior name="MyService.MyService">
<webHttp/>
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:2812/MyService.svc" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="MyService.MyService"
behaviorConfiguration="metadataBehavior">
<endpoint
address="http://localhost/MyService.svc"
binding="customBinding"
bindingConfiguration="jsonpBinding"
behaviorConfiguration="MyService.MyService"
contract="MyService.IMyService"/>
</service>
</services>
<bindings>
<customBinding>
<binding name="jsonpBinding">
<jsonpMessageEncoding/>
<httpTransport manualAddressing="true"/>
</binding>
</customBinding>
</bindings>
<extensions>
<bindingElementExtensions>
<add name="jsonpMessageEncoding" type="Microsoft.Ajax.Samples.JsonpBindingExtension, MyService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</bindingElementExtensions>
</extensions>
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'ajouter un échange de métadonnées (mex) d'extrémité à votre service:
Maintenant, vous devriez être en mesure d'obtenir des métadonnées pour votre service
Mise à jour: ok, si vous êtes juste de lancer ce à partir de Visual Studio, dans ce cas, il sera accueilli dans Cassini, le serveur web intégré. Cette bête toutefois seulement supporte le protocole HTTP - vous n'êtes pas à l'aide de ce protocole dans votre liaison...
Aussi, puisque vous êtes d'hébergement de cette Cassini, l'adresse de votre service sera dicté par Cassini - vous n'avez pas à définir quoi que ce soit.
Donc, ma suggestion serait:
Je voudrais donc changer la configuration pour l':
Une fois que vous avez cela, essayez de faire un
View in Browser
sur votre SVC fichier dans votre solution Visual Studio - si cela ne fonctionne pas, vous avez encore un problème majeur de quelque sorte.Si cela fonctionne - maintenant, vous pouvez appuyer sur la touche F5 de VS et de votre service doit venir, et à l'aide de la Client Test WCF app, vous devriez être en mesure d'obtenir votre service de métadonnées à partir de a) l'adresse que Cassini a commencé à votre service, ou b) le mex adresse (Cassini adresse de l' +
/mex
)Dans le cas où vous renommez le fichier svc assurez-vous que votre balisage est correct.
Vous aurez besoin de modifier la configuration par défaut et suivez ces étapes:
1) Aller à SVC fichier, cliquez droit et sélectionnez afficher le balisage
2) assurez-vous que le code derrière et le service de pointage pour corriger le fichier et le nom de classe.
FYI - VOUS POUVEZ également obtenir cette erreur à partir d'une machine qui n'est pas d'avoir assez de mémoire libre. J'ai eu cette erreur sur une machine, je lance avec 16 go de mémoire. J'ai eu une VM en cours d'exécution avec 6 concerts et BEAUCOUP de mémoire intensive des applications. Près de la vers le bas et ce problème a disparu.
Je n'ai toujours l'erreur dans le titre de la question de
Pas réussi à ajouter un service. Des métadonnées de Service peuvent ne pas être accessibles. Assurez-vous que votre service est en cours d'exécution et d'exposer les métadonnées.`
J'ai remarqué un message plus global sur la mémoire mais en utilisant le Client Test WCF.
Espère que cela aide quelqu'un d'autre.
Ajouter
Serializable()
avant que le type vous exposerMettre
Serializable
en<>
Dans mon cas, je recevais ce message, car l'option (HttpActivation) n'a pas été activé.
si vous travaillez avec .NET 4.0 service WCF - assurez-vous Mondial.asax n'est pas dans le répertoire source. Si elle est , il est pris au moment de l'exécution et de tentatives pour être compilé en...
de changer le Type de Liaison de wsHttpbinding à basichttp de liaison à l'extrémité de la balise et de wsHttpbinding à mexhttpbinginding dans les métadonnées à l'extrémité de la balise a aidé à surmonter l'erreur. Merci...
Dans mon cas, sur en commentant la
dans le web.fichier de configuration a été lancer "impossible d'ajouter un service. Des métadonnées de Service peuvent ne pas être accessibles. Assurez-vous que votre service est en cours d'exécution et d'exposer les métadonnées".
J'ai essayé plusieurs solutions mentionnées sur le web, malheureusement sans succès.
Dans mon projet, j'ai deux interfaces(xml/json) pour chaque service. L'ajout de mex points de terminaison ou de configurations de liaison n'a pas aidé du tout.
Mais, j'ai remarqué, j'ai cette erreur uniquement lors de l'exécution du projet avec *.svc.cs ou *.fichier de configuration ciblée. Quand je lance le projet avec IService.cs fichier ciblé (où les interfaces sont définies), service est ajouté, sans erreurs. Ce qui est vraiment étrange, et à mon avis, la conclusion est un bug dans Visual Studio 2013.
J'ai reproduit le même comportement sur plusieurs machines(même sur Windows Server machine).
Espérons que cela aide quelqu'un.
La plupart du temps, cela se produit en raison de moins d'espace mémoire. vérifiez d'abord puis essayer d'autres trucs .
La propriété
IsOneWay=true
est peut-être vrai dans le contrat Opérationnel de l'interface.Supprimer la propriété de se débarrasser de cette erreur.
Dans mon cas, le Webservice est la génération de l'assembly avec un nom différent de celui du projet/nom du service. Il a été créé comme ça par mon prédécesseur, le développeur qui travaille sur la solution et je ne savais pas.
Il a été mis à
Donc, la solution a été de le mettre le bon nom de l'assembly dans serviceAuthorizationManagerType. Le nom de l'assemblage peut être obtenu en suivant le chemin d'accès du projet de service:
Clic droit sur la WCF svc projet--> Sélectionnez "Propriétés" --> à Partir de la liste des onglets, sélectionnez "Application". Vérifier la valeur contre le "nom de l'Assembly:" champ dans la liste. C'est le assemblyName à utiliser pour serviceAuthorizationManagerType qui peut ne pas être le servicename nécessairement.
n'oubliez pas de suivre les instructions pour serviceAuthorizationManagerType comme mentionné sur https://docs.microsoft.com/en-us/dotnet/framework/wcf/extending/how-to-create-a-custom-authorization-manager-for-a-service
Il dit -
Avertissement
Remarque: lorsque vous spécifiez le serviceAuthorizationManagerType, la chaîne doit contenir le nom de nom de type. une virgule, et le nom de l'assemblée, dans laquelle le type est défini. Si vous laissez de côté le nom de l'assembly, WCF va tenter de charger le type de System.ServiceModel.dll.
J'ai observé que lorsque je l'ai enlevé SessionMode de la ServiceContract attribut, le problème a disparu.
Exemple:
à...
Après l'Ajouter à votre site web.le fichier de configuration et configurer selon vos nom du service et le nom du contrat.
Veuillez ajouter ceci dans votre Service.svc
Espère qu'il vous aide à vous.