Donnerstag, Mai 28, 2020

WCF-IIS-server-Konfiguration

Ich habe Windows Server 2008 R2 mit IIS7 drauf. Ich bereitgestellt WCF-service auf Sie. Wenn ich angeben WCF-service-Adresse im browser (lokale oder externe Maschine) http://sbkisourcedev01/VCIndex/Calculator.svc?wsdl bin ich immer der service-Beschreibung im browser. Jedoch, wenn ich versuche, Sie auf Verweis hinzufügen, um das Projekt zu, dass der service, den ich erhalte folgende Fehlermeldung:

Das Dokument wurde erkannt, aber es konnte nicht verarbeitet werden. 

- Das WSDL-Dokument enthält links, die nicht aufgelöst werden konnte. 
- Es wurde ein Fehler beim Download 'http://sbkisourcedev01/VCIndex/Calculator.svc?xsd=xsd0'. 
- Die zugrunde liegende Verbindung wurde geschlossen: unerwarteter Fehler bei einer erhalten. 
- Kann nicht zum Lesen von Daten von der übertragungsverbindung: Eine vorhandene Verbindung wurde gewaltsam vom Remotecomputer host geschlossen. 
- Eine vorhandene Verbindung wurde zwangsweise geschlossen durch remote-host 

Metadaten enthalten einen Verweis, der nicht aufgelöst werden: 'http://sbkisourcedev01/VCIndex/Calculator.svc?wsdl'. 
Content-Type application/soap+xml; charset=utf-8 nicht unterstützt wurde, durch service http://sbkisourcedev01/VCIndex/Calculator.svc?wsdl. Die client-und service-Bindungen möglicherweise nicht überein. 
Der Remoteserver hat einen Fehler zurückgegeben: (415) Nicht verarbeiten kann, die Nachricht, da der Inhaltstyp "application/soap+xml; charset=utf-8' wurde nicht dem erwarteten Typ 'text/xml; charset=utf-8'.. 
Wenn der Dienst definiert ist, die in der aktuellen Lösung, versuchen Sie die Erstellung der Lösung und hinzufügen der service Referenz wieder. 

Habe ich diesen Dienst, der auf Windows 7 und es ist okay. Also ich glaube es ist etwas mit meinem W2K8 IIS-Konfigurationseinstellungen.

Hier ist meine config Datei:

  <system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="basicHttpBindingConfig" />
      </basicHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="serviceBehavior">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    <services>
      <service behaviorConfiguration="serviceBehavior"
               name="WCFVCIndex.Calculator">
        <endpoint address=""
                  binding="basicHttpBinding"
                  contract="WCFVCIndex.ICalculator"
                  bindingConfiguration="basicHttpBindingConfig" />
        <endpoint address="mex"
                  binding="mexHttpBinding"
                  contract="IMetadataExchange" />
      </service>
    </services>
  </system.serviceModel>

Vielen Dank im Voraus.

InformationsquelleAutor Vlad Bezden | 2011-07-13

2 Kommentare

  1. 7

    War das problem mit WCF Identität Berechtigungen. Die Identität für den Anwendungspool hostet, die den WCF-service muss volle NTFS-Berechtigungen auf das %WINDIR%\temp-Ordner. Nach der änderung, der Genehmigung, um meine Identität (LOKALER DIENST) auf C:\Windows\Temp ich war in der Lage, die service-Referenz auf WCF-Dienst.

    • Danke, du hast soeben meinen Tag gerettet! +1
    • Wie machst du das? Können Sie erwähnen diese Schritte?

Kostenlose Online-Tests