Frage

Wenn ich meine WCF Data Services zur Produktion eingesetzt Hosting begann ich die folgende Fehlermeldung zu erhalten (oder ähnlich je nachdem, welche Auth Systeme aktiv sind):

  

IIS angegebene Authentifizierungsschemen   ‚Basic, Anonym‘, aber die Bindung   nur unterstützt Spezifikation von genau   ein Authentifizierungsschema. Gültig   Authentifizierungsschemata sind Digest,   Verhandeln, NTLM, Basic oder Anonymous.   Ändern Sie die IIS-Einstellungen so, dass nur ein   Einzelauthentifizierungsschema verwendet wird.

Anscheinend WCF Data Services (WCF im Allgemeinen?) Kann aktiv nicht verarbeitet mehr als einmal Authentifizierungsschema mit.

OK, damit ich weiß, dass ich alles-aber-ein Authentifizierungsschema auf der Web-Anwendung über IIS Systemsteuerung deaktivieren kann .... über eine Support-Anfrage !!

Gibt es eine Möglichkeit, ein einzelnes Authentifizierungsschema auf einem Pro-Service-Level in der web.config angeben?

Ich dachte, das könnte genauso einfach sein wie eine Änderung <system.serviceModel> machen, aber ... es stellt sich heraus, dass WCF Data Services konfiguriere sich nicht in der Web-Config . Wenn man sich die DataService<> Klasse sieht implementieren es keine [ServiceContract] daher kann man nicht in der <service><endpoint> darauf verweisen ..., die ich nehme an für die Änderung seiner Konfiguration über XML benötigt würde.

P. S. Unser Gastgeber ist mit II6, aber beide Lösungen für IIS6 & IIS7 geschätzt.

War es hilfreich?

Lösung

Zum einen ist es möglich, Datendienste auf der Web-Konfigurationsdatei zu konfigurieren. Der Vertrag, die von der Data heißt System.Data.Services.IRequestHandler.

Hier ist, was Sie in der Web-Konfigurationsdatei tun können, um es zu konfigurieren.

Auf dem Service-Etikett des System.ServiceModel Element fügen Sie die

<service name="{you service type name including the namespace i.e. myapplication.myservice}">
    <endpoint address="" binding="webHttpBinding" contract="System.Data.Services.IRequestHandler">
    </endpoint>
</service>

Sobald Sie, dass es Sie beginnen können alle Arten der Sache Konfiguration der Standard WCF Konfigurationselemente verwendet wird.

Zweitens zu aktivieren oder deaktiviert Authentifizierungsmethoden für einen bestimmten Dienst in IIS Sie Folgendes tun können:

Auf dem Snap-In für IIS Recht Service-Datei klicken (das heißt yourservice.svc) und klicken Sie auf Eigenschaften. Einmal in Eigenschaften gehen Registerkarte Sicherheit und wählen die Schaltfläche Bearbeiten auf der Authentifizierung und Zugriffskontrollgruppe Feld Ausgabe in Datei. nach, dass es genauso wie Einrichten Verzeichnissicherheit in IIS ist.

Als letzter Vorschlag nach jeder Fehlerbehebung geht es wichtig ist, die wcf disgnostics zu ermöglichen, während Sie konfigurieren es die XML-Konfiguration verwenden, in WCF geschrieben wird, ist Data Service Protokollierung gemäß wcf reich ist und sehr informativ.

können Sie auf, dass Sie mehr über WCF-Administration finden und Diagnose

Ich hoffe, ich kann Ihnen mit Ihrem Problem helfen

Lassen Sie mich wissen, wie es geht.

Viele Grüße

Daniel Portella

UPDATE:

Hallo Schneider

Um das Authentifizierungsschema angeben, in der xml unten lesen

Für die Windows-Authentifizierung als Beispiel

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <bindings>
      <webHttpBinding>
        <binding name="MyBindingName" >
          <security mode="Transport">
            <transport clientCredentialType="Windows" />
          </security>
        </binding>
      </webHttpBinding>
    </bindings>
    <services>
      <service name="{you service type name including the namespace i.e. myapplication.myservice}">
        <endpoint address="" binding="webHttpBinding" bindingConfiguration="MyBindingName" contract="System.Data.Services.IRequestHandler">
        </endpoint>
      </service>
    </services>
  </system.serviceModel>
</configuration>

Für andere Arten der Authentifizierung überprüfen Sie bitte die MSDN-Bibliothek für Beispiele

Gemeinsame Szenarien für die Sicherheit

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top