2016-07-21 22 views
0

Ich kann den in IIS.i.e unter http://192.168.100.87:7001/ProductRESTService.svc/ gehosteten Dienst "restless" nicht verwenden.Das Standard-Endpunktelement konnte während eines WCF-Diensts nicht gefunden werden.

Ich habe eine Client-Anwendung erstellt und hinzugefügt die Service-Referenz und erstellt den Proxy für Service und Zugriff auf die Verwendung von Prxoy.

Der Fehler ist:

kann nicht Standard Endpunktelement finden, den Vertrag ‚ServiceReference2.IProductRESTService‘ im Servicemodel-Client-Konfiguration Abschnitt verweist. Dies liegt möglicherweise daran, dass keine Konfigurationsdatei für Ihre Anwendung gefunden wurde oder dass kein Endpunktelement gefunden wurde, das diesem Vertrag entspricht.

Meine Datei web.config folgt.

<system.serviceModel> 
    <services> 
     <service name="MyRESTService.ProductRESTService" behaviorConfiguration="serviceBehavior"> 
      <endpoint address="" 
         binding="webHttpBinding" 
         contract="MyRESTService.IProductRESTService" 
         behaviorConfiguration="web"></endpoint> 
      </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="serviceBehavior"> 
        <serviceMetadata httpGetEnabled="true"/> 
        <serviceDebug includeExceptionDetailInFaults="false"/> 
     </behavior>   
     </serviceBehaviors> 
     <endpointBehaviors> 
      <behavior name="web"> 
       <webHttp/> 
      </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <protocolMapping> 
     <add binding="basicHttpsBinding" scheme="https" /> 
    </protocolMapping>  
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 

hi, überprüfen Sie bitte meine Client-Konfigurationsdatei.

<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.5" /> 
     <httpRuntime targetFramework="4.5" /> 
    </system.web> 

    <system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
     <binding name="BasicHttpBinding_ICreate_Restful_WCF_Service"/> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="http://192.168.1.xxx:2777/ProductRESTService.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ICreate_Restful_WCF_Service" contract="ServiceReference1.IProductRESTService" name="BasicHttpBinding_ICreate_Restful_WCF_Service"/> 
    </client> 
    </system.serviceModel> 

</configuration> 
+0

Veröffentlichen Sie Ihre Client-Konfigurationsdatei - die von Ihnen gepostete ist für den Dienst. Das Problem scheint bei Ihrem Kunden zu liegen, * nicht * beim Service. – Tim

+0

Hallo, @Tim, jetzt stelle ich die Client-Konfigurationsdatei zur Verfügung, bitte überprüfe sie einmal. Wenn irgendwelche Fehler mich wissen lassen. –

Antwort

0

Warum verwenden Sie Client-Anwendungen für den Rest-Service? Für den Rest-Service könnten wir ihn direkt über httpWebRequest aufrufen. Die Dienstreferenz hinzufügen verwendet WSDL oder ws-metadataExchange und rest verfügt nicht über Metadaten. Wenn Sie die Referenz zum Hinzufügen von Diensten verwenden, werden keine app.config-Einstellungen generiert, und dieser Fehler wird erzeugt. Wenn Sie versuchen möchten, die Dienstreferenz hinzuzufügen, um den Dienst "wcf" zu verwenden, müssen Sie den Dienst "sap" anstelle des Diensts "rest" verwenden.

+0

Das ist nicht ganz richtig. Während Sie korrekt sind, dass Sie keinen SOAP-Client verwenden, um einen RESTful-Service aufzurufen, fügen Sie bei Verwendung eines WCF-Service 4.0 oder höher den Standard basicHttpEndpoint hinzu, was bedeutet, dass Sie eine Service-Referenz hinzufügen können. Das bedeutet natürlich nicht, dass du das möchtest. – Tim