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

Wenn wir unseren Service mit der folgenden URL aufrufen, erhalten wir eine Seite nicht gefunden Fehler:

  

http: // localhost: 9999 / Service1.svc / GetData / ABC

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.

  1. Sie in Visual Studio 2010 erstellen Sie eine neue "WCF Service Application" Projekt
  2. 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);
      }
    
  3. Setzen Sie die Service-Klasse mit diesem Code

    public class Service1 : IService1
    {
        public string GetData(string value)
        {
            return string.Format("You entered: {0}", value);
        }
    }
    
  4. 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>
    

         

  5. 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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top