2017-04-06 2 views
0

Ich habe eine WCF-Dienstanwendung, die die .NET-Anwendung von Frauweork 4.5.2 und einen Anwendungspool verwendet, der Managed pipeline mode auf Integrated festgelegt hat. Ich verwende die Standardauthentifizierung, um diesen WCF-Dienst zu verwenden. Ich habe die Anwendung auf zwei Umgebungen eingesetzt (dev und qa), in dev es perfekt funktioniert, aber in qa bekomme ich folgende Fehlermeldung:WCF-Dienstanwendung ermöglicht keine grundlegende Authentifizierungskonfiguration

enter image description here

Unten ist die IIS-Authentifizierung Konfiguration der Anwendung:

enter image description here

Und das ist mein web.config:

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding> 
       <security mode="TransportCredentialOnly"> 
        <transport clientCredentialType="Basic" /> 
       </security> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <services> 
     <service name="MyProject.IS01" 
       behaviorConfiguration="ServiceWithMetaData"> 
      <endpoint name="Default" 
       address="" 
       binding="basicHttpBinding" 
       contract="MyProject.IIS01" /> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
      <behavior name="ServiceWithMetaData"> 
       <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment 
      aspNetCompatibilityEnabled="true" 
      multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" /> 
     <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" /> 
     <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" /> 
    </modules> 
    <directoryBrowse enabled="true" /> 
    <validation validateIntegratedModeConfiguration="false" /> 
</system.webServer> 

Der erste Satz des Nachrichtenfehlers ist für mich sehr stange. Es heißt, dass die Authentifizierung auf Windows festgelegt ist, aber wie Sie im zweiten Screenshot sehen können, ist die Windows-Authentifizierung deaktiviert.

Fehlt etwas in der Konfiguration? Sollte ich einige Features auf dem Server aktivieren, auf dem IIS gehostet wird?

Ich erwähne, dass alle Probleme, die ich bei Google gefunden habe im Zusammenhang mit anonymer Authentifizierung (nicht zur grundlegenden Authentifizierung).

Vielen Dank im Voraus.

Antwort

0

Das liegt daran, dass Sie die BindingConfiguration Einstellung in Ihrem Dienstendpunkt nicht finden und somit die Konfiguration überhaupt nicht angewendet wird. Ändern Sie es wie folgt:

<bindings> 
    <basicHttpBinding> 
    <binding name="testbinding"> 
     <security mode="TransportCredentialOnly"> 
     <transport clientCredentialType="Basic" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 


<services> 
    <service name="MyProject.IS01" behaviorConfiguration="ServiceWithMetaData"> 
    <endpoint name="Default" address="" binding="basicHttpBinding" 
contract="MyProject.IIS01" bindingConfiguration="testbinding" /> 
    </service> 
</services> 
+0

Die initial Konfiguration hatte einen verbindlichen Namen (ich hatte auch die 'bindingConfiguration' Attribut darauf) und ich hatte den gleichen Fehler. – roroinpho21

+0

@ roroinpho21, versuchen Sie die geschriebene Antwort einmal zuerst und wenn nicht funktioniert dann wieder mit der genauen Fehlermeldung – Rahul

+0

Ich reparierte das Problem Witz Neustart auf Anwendungspool – roroinpho21