How-to: Umzug WCF-service von localhost auf server-Produktion

Arbeitete ich durch erstellen eines WCF-Webdiensts auf meiner Entwicklungs-Maschine. Ich baute den Dienst, erstellt einen test-client, alles getestet und es funktioniert. Ich begann zu fühlen, ziemlich gut über das WCF-Sachen. Dann habe ich gutsy und zog es zu meinem Produktionsserver.

Für jetzt, die Produktions-server auf WinHost.com. Ich habe mein Test-domain, www.MyDomain.com erstellt eine Anwendung, die Ordner /websvc, und kopiert die web-service-Dateien in es. Die service-Adresse ist http://www.MyDomain.com/websvc/eval.svc

Nun habe ich bewegt, um die Produktions-server kann ich nicht verwenden Sie die web-service. Ich bekomme diese Fehlermeldung - "Diese Sammlung enthält bereits eine Adresse mit Schema" http." Ich gegoogelt die Nachricht nach Lösungen, versucht, ein paar aber nur führte zu weiteren Fehlern. Also ich setze alles zurück und ich fange an über.

Basiert auf dem service-Adresse vor, was sollte mein web.config Aussehen? Insbesondere, wie sollte meine Endpunkte in ihn sehen?

Hier ist, was ich jetzt haben...

<configuration>
  <system.serviceModel>
    <services>
      <service name="EvalServiceLibrary.EvalService">
        <endpoint address="http://www.MyDomain.com:80/websvc/mex"
          binding="mexHttpBinding" contract="IMetadataExchange" />
        <endpoint address="http://www.MyDomain.com:80/websvc/basic"
          binding="basicHttpBinding" contract="EvalServiceLibrary.IEvalService" />
      </service>
    </services>

    <behaviors>
      <serviceBehaviors>
        <behavior name="ServiceBehavior">
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
  • Ist, dass eine Nachricht, die Sie erhalten, wenn Sie versuchen, zu konsumieren, den Dienst aus einer Anwendung? Aktivieren includeExceptionDetailInFaults und navigieren Sie dann zu dem Speicherort, der den service in Ihrem browser. Was zeigen Sie? Übrigens, die Adresse finden Sie aufgelistet in Ihrer Frage nicht mit der Endpunkt-Adresse im Web.config-Datei.
  • Können Sie den Unterschied in der Endpunkt-Adresse? Ich bin nicht es zu sehen. Die Fehlermeldung ist disaplyaed in meinem browser, wenn ich Versuch zu access MyDomain.com:80/websvc/eval.svc/basic
  • Die Adresse in der Beschreibung ist websvc/eval.svc, in der Erwägung, dass in der config heißt es basic.
Schreibe einen Kommentar