Fehler beim Hinzufügen eines Service. Auf Service-Metadaten kann möglicherweise nicht zugegriffen werden. Stellen Sie sicher, dass Ihr Dienst ausgeführt wird und Metadaten offenlegt
EDIT:
Nachdem ich verändert die web.config
und ich bekomme keinen Fehler, der ist gut.... dann habe ich eine neue Seite hinzufügen (html) und Schreibe diesen kleinen code zu konsumieren, die so einen service:
$("#btn12").click(function (event) {
$.getJSON('http://localhost:3576/MyService.svc/GetCurrentUser', {},
function (data) {
alert(data);
});
//return false;
});
Sehe ich die folgende Fehlermeldung in meinem FireBug:
http://localhost:3576/MyService.svc/GetCurrentUser
400 Bad Request
Hinweis: ich habe html-Seite auf dem gleichen wcf-Projekt und das Projekt ausgeführt wird, es selbst also ich gehe davon aus, dass der Dienst auch läuft ...
Was könnte hier falsch sein?
ENDE BEARBEITEN
Habe ich gerade erstellt eine neue wcf-Dienste und, wenn ich drücken Sie die Taste f5 aus VS und ich bekomme diesen Fehler im WCF Test Client-Fenster :
Fehler beim hinzufügen eines service. Service Metadaten kann nicht zugegriffen werden. Stellen Sie sicher, dass Ihr Dienst ausgeführt wird und setzen von Metadaten.
Fehler: Nicht-abrufen von Metadaten aus http://localhost:3696/MobileService.svc Wenn dies eine Windows (R) Communication Foundation-Dienst auf die Sie Zugriff haben, überprüfen Sie bitte, dass Sie aktiviert haben, die Veröffentlichung von Metadaten an der angegebenen Adresse. Für die Hilfe aktivieren der metadatenveröffentlichung finden Sie in der MSDN-Dokumentation unter http://go.microsoft.com/fwlink/?LinkId=65455.
WS-Metadata-Exchange-Fehler
URI: http://localhost:3696/MyService.svc
Metadaten enthalten einen Verweis, der nicht aufgelöst werden: 'http://localhost:3696/MyService.svc'.Es wurde kein Endpunkt hören auf http://localhost:3696/MyService.svc könnte, dass die Nachricht akzeptiert. Dies wird oft verursacht durch eine fehlerhafte Adresse oder SOAP-Aktion. Sehen InnerException, falls vorhanden, für weitere details.
Konnte keine Verbindung zum remote-server
Es konnte keine Verbindung hergestellt werden, da der Zielcomputer aktiv verweigert 127.0.0.1:3696
HTTP-GET-Fehler
URI: http://localhost:3696/MyService.svc
Es wurde ein Fehler beim herunterladen von 'http://localhost:3696/MyService.svc'.
Keine Verbindung zum remote-server
Es konnte keine Verbindung hergestellt werden, da der Zielcomputer aktiv verweigert 127.0.0.1:3696
Meine 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>
InformationsquelleAutor der Frage Nick Kahn | 2011-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie einen metadata exchange (mex) - Endpunkt zu Ihrem service:
Nun sollten Sie in der Lage, um Metadaten für Ihren service
Update: ok, du bist also nur dem Start von Visual Studio - in diesem Fall wird gehostet in Cassini, die gebaut-in web-server. Das Biest jedoch nur unterstützt HTTP -, die Sie nicht verwenden, dass das Protokoll in Ihrer Bindung...
Auch, da Sie hosting in diesem Cassini, die Adresse für Ihre Dienst wird bestimmt durch die Cassini - Sie nicht bekommen, um zu definieren, nichts.
Also mein Vorschlag wäre:
Also ich würde die config ändern:
Sobald Sie dass haben, versuchen zu tun, ein
View in Browser
auf Ihre SVC-Datei in Ihrem Visual Studio-Lösung - wenn das nicht funktioniert, haben Sie immer noch ein großes problem von einigen Sortieren.Wenn es funktioniert - jetzt können Sie drücken Sie die F5-Taste im VS und dem service kommen sollte, und mit der WCF Test-Client-appSie sollten in der Lage sein, um Ihre service-Metadaten aus a) die Adresse, die Cassini begann Ihren Dienst auf, oder b) mex-Adresse (Cassini-Adresse +
/mex
)InformationsquelleAutor der Antwort marc_s
Falls Sie benennen Sie die svc-Datei stellen Sie sicher, dass Ihr markup ist korrekt.
Sie keine Notwendigkeit, ändern Sie die Standard-Konfiguration und führen Sie die folgenden Schritte aus
1) Gehen Sie auf die SVC-Datei mit der rechten Maustaste und wählen Sie " Ansicht-markup
2) Stellen Sie sicher, dass das code-behind-und service verweist, korrigieren Sie die Datei-und Klassennamen.
InformationsquelleAutor der Antwort Aravind Mungara
FYI - SIE KÖNNEN auch diese Fehlermeldung angezeigt wird, von einem Computer ist nicht genügend Arbeitsspeicher frei. Ich habe diesen Fehler auf einem Rechner habe ich die Ausführung mit 16 GB Speicher. Ich hatte eine VM laufen mit 6 gigs und eine MENGE von Speicher-intensive apps. Schließen Sie einige nach unten, und das problem ging Weg.
Ich habe immer noch den Fehler im Titel der Frage
Fehler beim hinzufügen eines service. Service Metadaten kann nicht zugegriffen werden. Stellen Sie sicher, dass Ihr Dienst ausgeführt wird und setzen von Metadaten.`
Ich habe bemerkt, eine größere Nachricht über das Gedächtnis, obwohl in mit dem WCF Test Client.
Hoffe, dies hilft jemand anderes.
InformationsquelleAutor der Antwort Tom Stickel
Hinzufügen
Serializable()
vor den Typ setzen SieSetzen
Serializable
in<>
InformationsquelleAutor der Antwort William
In meinem Fall war ich immer diesen Fehler, weil die option (HttpActivation) nicht aktiviert wurde.
InformationsquelleAutor der Antwort Anirudh Aryasomayajula
wenn die Arbeit mit .NET 4.0 WCF-Dienst - stellen Sie sicher Global.asax wird nicht in das source-Verzeichnis. Wenn es ist , es wird abgeholt, zur Laufzeit und versucht zu kompilieren...
InformationsquelleAutor der Antwort Brian Byrne
änderung der Bindungstyp von wsHttpbinding zu basichttp-binding in der Endpunkt-tag und von wsHttpbinding zu mexhttpbinginding in metadata endpoint tag geholfen, das zu überwinden die Fehler. Danke...
InformationsquelleAutor der Antwort Krishnanand Kamat
In meinem Fall, auf auskommentieren der
im web.config-Datei war werfen "Fehler beim hinzufügen eines service. Service Metadaten kann nicht zugegriffen werden. Stellen Sie sicher, dass Ihr Dienst ausgeführt wird und das Verfügbarmachen von Metadaten".
InformationsquelleAutor der Antwort Dev
Ich habe versucht, mehrere Lösungen erwähnt über das Internet, leider ohne Erfolg.
In meinem Projekt habe ich zwei Schnittstellen(xml/json) für jeden Dienst. Hinzufügen mex Endpunkte oder verbindliche Konfigurationen hat nicht geholfen überhaupt.
Aber, wie ich bemerkt habe, ich bekomme diese Fehlermeldung nur, wenn laufendes Projekt mit *.svc.cs oder *.config-Datei konzentriert. Wenn ich ein Projekt mit IService.cs-Datei konzentriert (wo die Schnittstellen sind definiert), der service ist ohne jegliche Fehler. Das ist wirklich seltsam und meiner Meinung nach Schluss ist der Fehler in Visual Studio 2013.
Ich reproduzierte gleiche Verhalten auf mehreren Rechnern(auch auf Windows-Server-Maschine).
Hoffe, das jemand hilft.
InformationsquelleAutor der Antwort user2987476
Meisten der Zeit dies geschieht, da weniger Speicherplatz. zuerst überprüfen, dann versuchen Sie einige andere tricks .
InformationsquelleAutor der Antwort Vikrant Singh
Habe ich beobachtet, dass wenn ich entfernt SessionMode aus dem ServiceContract-Attribut, das Problem ging Weg.
Beispiel:
...
InformationsquelleAutor der Antwort Scott Nimrod
Nach Fügen Sie diese auf Ihrer Website.config-Datei und konfigurieren Sie nach Ihren service-Namen und-Vertrag name.
Bitte fügen Sie diese in Ihren Dienst.svc
Hoffe es hilft dir.
InformationsquelleAutor der Antwort Wiki Shah