2010-11-21 14 views
4

Ich habe derzeit eine Lösung mit einem Azure WCF-Dienst und einem Windows Phone 7-Projekt. Ich kann das Entwicklungs-Fabric lokal ausführen und zur URL (http://127.0.0.1:81/API/V1.svc) meines Dienstes gehen. Wenn ich Service-Referenz aus der Windows Phone-Anwendung hinzufüge, wird es den Service gut finden, aber wenn ich versuche, die Methoden auf dem Service zu sehen, bekomme ich den Fehler "Der ASP.NET Development Server kann nicht gestartet werden, da Port '50149' ist benutzen." Wenn ich auf "OK" klicke, wird ein Fehler beim Herunterladen der Metadaten von der Adresse angezeigt. Bitte überprüfen Sie, ob Sie eine gültige Adresse eingegeben haben.Azure WCF-Dienst Azure WCF-Dienst verbrauchen

Ich verstehe nicht ganz, warum es es auf Port 50149 zu entdecken, da ich es auf Port 81 zu sehen, aber ich versuchte, 81-Port, wenn der Dienst das Hinzufügen und ich bekam

ein Fehler beim Herunterladen Es gab ‚http : // localhost: 81/API/V1.svc '. Verbindung zum Remote-Server konnte nicht hergestellt werden Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung aktiv abgewiesen hat 127.0.0.1:81 Metadaten enthalten eine Referenz, die nicht aufgelöst werden kann: 'http: // localhost: 81/API/V1.svc ". Bei http://localhost:81/API/V1.svc konnte kein Endpunkt abgehört werden, der die Nachricht annehmen konnte. Dies wird oft durch eine falsche Adresse oder eine falsche SOAP-Aktion verursacht. Weitere Informationen finden Sie unter InnerException, falls vorhanden. Verbindung zum Remote-Server konnte nicht hergestellt werden Es konnte keine Verbindung hergestellt werden, weil der Zielcomputer dies aktiv abgelehnt hat 127.0.0.1:81 Wenn der Dienst in der aktuellen Lösung definiert ist, versuchen Sie, die Lösung zu erstellen und die Dienstreferenz erneut hinzuzufügen.

Hier ist mein Service-Modell Abschnitt

<system.serviceModel> 
    <services> 
    <service name="DocDemon.API.V1"> 
     <endpoint name="basicHttpBinding" binding="basicHttpBinding" contract="DocDemon.API.IV1" /> 
    </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
    <behavior name=""> 
    <serviceMetadata httpGetEnabled="true" /> 
    <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    <bindings> 

    </bindings> 
</system.serviceModel> 

Muss ich in hier definiert und Endpunkt müssen?

Hat es etwas mit dem WP7-Projekt zu tun und die Azure WCF ist in der gleichen Lösung? (Muss ich den WCF ausführen, wenn ich Service-Referenz von der WP7-App hinzufügen möchte?)

+0

Wie sieht Ihre Endpunktkonfiguration aus? Ich gehe davon aus, dass Sie Dev Fabric ausgeführt haben? – Igorek

Antwort

1

Ich habe die WP7-Anwendung in eine eigene Lösung verschoben und konnte dann den Webservice-Fehler erkennen, wenn diese Anwendung im lokalen DevFabric ausgeführt wurde. Die WP7-Anwendung konnte sie nur nicht finden, wenn sie sich in derselben Lösung befanden.

0

Haben Sie sich die WCF Azure-Beispiele known issues in der MSDN Code Gallery angesehen? Es gibt eine Feinheit in Bezug auf Metadaten und eine Verhaltensoptimierung. Hoffentlich hilft das.

+0

Haben beide schon. –

0

In meinem WCF in Azure läuft ich konfigurieren Endpunkte an zwei Stellen (mein Beispiel definiert eine sichere SSL-Endpunkt auf Port 443):

1. Mal in web.config Endpunkte Verträge zu definieren:

<system.serviceModel> 
    <services> 
     <service 
      behaviorConfiguration="CustomValidationBehavior" 
      name="ServiceName"> 

      <endpoint 
           binding="wsHttpBinding" 
           bindingConfiguration="MembershipBinding" 
           name="bindingName         contract="InterfaceName" /> 

Danach müssen Sie auch sicherstellen, dass Azure Ihren Dienst durch seine eigene Endpunkte in ServiceDefinition.csdef aussetzt:

<InputEndpoints> 
    <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="CertName" /> 
</InputEndpoints> 
0

Sie keinen Verweis auf diesen Port, wenn sie verwenden können läuft nicht, keine Metadaten werden gefunden.

Ich würde sagen, bewegen Sie Ihr Server-Projekt zu IIS anstelle von Casini, da es dort auf der Azure-Plattform ausgeführt wird. Ich hatte Probleme mit Azure und Casini, die auf IIS nicht aufgetreten sind.

Verwandte Themen