Wie einen WCF-Dienst verwenden, mit dem HTTP-Get (in Visual Studio 2010)
-
28-09-2019 - |
Frage
Wir haben einen sehr sehr einfachen WCF-Dienst zu verwenden versuchen, mit einem HTTP-GET und wir können es nicht die Arbeit. Wir haben diese „Führer“ gefolgt, aber es funktioniert nicht
- http://msdn.microsoft.com/en-us/library/ bb412178.aspx
- http://www.dotnetfunda.com/articles/article779-simple-5-steps-to-expose-wcf-services-using-rest-style-.aspx
Wenn wir unseren Service mit der folgenden URL aufrufen, erhalten wir eine Seite nicht gefunden Fehler:
Die Basis-URL (http: // localhost: 9999 / Service1.svc). Funktioniert gut und gibt die Wcf Service-Informationsseite korrekt
Das sind die Schritte und Code unserem Beispiel zu reproduzieren.
- Sie in Visual Studio 2010 erstellen Sie eine neue "WCF Service Application" Projekt
-
Setzen Sie die IService Schnittstelle mit diesem Code
[ServiceContract()] public interface IService1 { [OperationContract()] [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = "GetData/{value}")] string GetData(string value); }
-
Setzen Sie die Service-Klasse mit diesem Code
public class Service1 : IService1 { public string GetData(string value) { return string.Format("You entered: {0}", value); } }
-
Die web.config sieht wie folgt aus
<system.web> <compilation debug="true" strict="false" explicit="true" targetFramework="4.0" /> </system.web> <system.serviceModel> <services> <service name="Service1"> <endpoint address="" binding="webHttpBinding" contract="IService1" behaviorConfiguration="WebBehavior1"> </endpoint> </service> </services> <behaviors> <endpointBehaviors> <behavior name="WebBehavior1"> <webHttp helpEnabled="True"/> </behavior> </endpointBehaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="true"/> <serviceDebug includeExceptionDetailInFaults="false"/> </behavior> </serviceBehaviors>
- Drücken Sie Run und versuchen, die Get-Methode aufrufen
Wenn jemand bekommt dies oder etwas ähnliches arbeiten, wäre es sehr nett, wenn Sie Informationen über das Arbeitsbeispiel antworten können.
Danke schön
Lösung
neu erstellt ich Ihre Probe -. Arbeiten wie ein Charme
Ein Punkt: Sie Ihren Service-Vertrag (public interface IService1
) und Service-Implementierung (public class Service1 : IService1
) existiert in einem .NET-Namespace ??
Wenn ja, müssen Sie Ihre * .svc und Ihre web.config
ändern sind:
<services>
<service name="Namespace.Service1">
<endpoint address="" binding="webHttpBinding"
contract="Namespace.IService1"
behaviorConfiguration="WebBehavior1">
</endpoint>
</service>
</services>
Das <service name="...">
Attribut und die <endpoint contract="...">
müssen .NET-Namespace für diese Arbeit sind.