2017-12-04 4 views
0

Ich nehme den WCF Rest Service in Angular JS Application auf. Ich habe mehrere Methoden zur Durchführung der Operation erstellt. Zuerst habe ich den wcf-Dienst mit dem Klassenbibliotheksprojekt und ich erstellte ein anderes wcf-Dienstprojekt, um es im lokalen IIS zu hosten. Wenn ich den wcf-Dienst auf dem lokalen Host ausführen, funktioniert es gut, aber das Problem ist mit der URL, wenn ich den Methodennamen eintippte, er löst Ausnahmen aus, dass der Endpunkt nicht gefunden wurde. Zum Beispiel http://localhost:52098/HalifaxIISService.svc/GetCustomers// Fehler der Endpunkt nicht gefunden.Wcf Service konnte den Endpunkt auf lokalem Host nicht finden

Hier ist meine Schnittstelle ..

[OperationContract] 

     [WebInvoke(Method = "POST", 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "/GetCustomers")] 
     string GetCustomers(string prefix); 

     [OperationContract] 
     [WebInvoke(Method = "POST", 
     RequestFormat = WebMessageFormat.Json, 
     ResponseFormat = WebMessageFormat.Json, 
     UriTemplate = "/GetAccountDetails")] 
     bool GetAccountDetails(string Account_Number); 

Hier wird app.cong Datei in Klassenbibliotheksprojekt.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 

    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="DBCS" connectionString="Data Source=;Initial Catalog=HalifaxDatabase;Integrated Security=True" providerName="System.Data.SqlClient" /> 
    <add name="HalifaxDatabaseEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=;initial catalog=HalifaxDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings> 
    <system.serviceModel> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name=""> 
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="false" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service name="HalifaxWCFProject.HalifaxService"> 
     <endpoint address="" binding="webHttpBinding" contract="HalifaxWCFProject.IHalifaxService"> 
      <identity> 
      <dns value="localhost" /> 
      </identity> 
     </endpoint> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8733/Design_Time_Addresses/HalifaxWCFProject/HalifaxService/" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    </system.serviceModel> 

    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" /> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Hier ist service.svc Code für IIS.

<%@ ServiceHost Language="C#" Debug="true" Service="HalifaxWCFProject.HalifaxService"%> 

Hier ist die web.config für SVC-Datei ..

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <connectionStrings> 
    <add name="DBCS" connectionString="Data Source=;Initial Catalog=HalifaxDatabase;Integrated Security=True" providerName="System.Data.SqlClient" /> 
    <add name="HalifaxDatabaseEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=;initial catalog=HalifaxDatabase;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 
    </connectionStrings> 
    <system.serviceModel> 
    <services> 
     <service name="HalifaxWCFProject.HalifaxService" behaviorConfiguration="mexBehaviour"> 
     <endpoint address="" binding="webHttpBinding" bindingConfiguration="" behaviorConfiguration="REST" contract="HalifaxWCFProject.IHalifaxService" /> 
     <host> 
      <baseAddresses> 
      <add baseAddress="http://localhost:8080/" /> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="mexBehaviour"> 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
     </behavior> 
     </serviceBehaviors> 
     <endpointBehaviors> 
     <behavior name="REST"> 
      <webHttp /> 
     </behavior> 
     </endpointBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true" /> 
    </system.serviceModel> 
    <system.web> 
    <compilation debug="true" /> 
    </system.web> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
     <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

Hier ist der Screenshot. click here to see the result Ich habe den Endpunkt in der Datei web.config definiert. Ich frage mich, ich habe diesen Fehler den Endpunkt nicht gefunden.

Antwort

1

Sie erhalten den Fehler "Endpunkt nicht gefunden", weil Sie HTTP Post Endpunkte definiert haben. Daher können Sie sie nicht in einem Webbrowser testen, da sie eine HTTP Get Anfrage sendet.

Wenn Sie Ihren Dienst testen möchten, ohne einen Code zu schreiben, verwenden Sie die Fiddler's Composer-Funktion, um eine HTTP-Post-Anfrage zu senden.

Fiddler Screenshot

Oder die WebInvoke ändern Attribut eine HTTP-GET-Anforderung zu ermöglichen.

[WebInvoke(Method = "GET", 
    RequestFormat = WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json, 
    UriTemplate = "/GetCustomers")] 
+0

Was ist die Änderungen, die ich auch für den Zugriff auf die GET-Anforderung machen – Mohammad

+0

ich meine Antwort geändert habe zu erklären, wie ein Web-Browser Ihre testen Service-Methode. –

1

Sie nicht auf Verfahren Beitrag versuchen

Verwandte Themen