windows - WCF Undtagelse: ... denne tjeneste kræver 'Anonym' godkendelse, men det er ikke aktiveret for IIS-applikationen, der er vært for denne tjeneste

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har set dette spurgt her og overalt mange gange, men jeg kan ikke tage mit hoved rundt om det.


Her er hvad jeg vil gøre.Jeg skal være vært for en WCF Service i IIS 6. Jeg vil gerne have brugernavn/adgangskode sikkerhed, og jeg vil ikke have disse bestået ukrypteret, så jeg bruger HTTPS. Jeg har dette arbejde lokalt på min IIS, men når jeg kommer til at distribuere det, får jeg den anonyme adgang ikke aktiveret fejl. På min lokale IIS anonyme adgang er aktiveret, på den installerede server er det ikke, og vi vil ikke aktivere det. Problemet forstået. Løsning ikke åbenlyst for mig ....


Hvis jeg navigerer til siden i IE, eller tilføjer servicehenvisning fra Visual Studio, får jeg denne fejl efter at have indtastet mit brugernavn/adgangskode. Så det viser, at mit certifikat og HTTPS fungerer OK, og brugernavnet og adgangskoden er korrekte. Her er de relevante indstillinger fra web.config:


<services>
  <service name="SecureWcfTestsApplication.Service1">
    <endpoint address=""
      binding="wsHttpBinding"
      bindingConfiguration ="Binding2"
      contract="SecureWcfTestsApplication.IService1" />
  </service>
</services>

<bindings>
  <basicHttpBinding>
  </basicHttpBinding>
  <wsHttpBinding>
    <binding name="Binding2">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="Windows" algorithmSuite="Default" />
      </security>
    </binding>        
  </wsHttpBinding>
</bindings>


Jeg bruger wsHttpBinding fordi det ikke lignede basicHttpBinding med clientCredentialType indstillet til Windows. Når det er sagt, vil jeg hellere bruge basicHttp, men det vil have Brugernavn som clientCredentialType, og jeg er ikke sikker på, hvad forskellen er mellem UserName og Windows security.


Bedst


Ray

Bedste reference


Den undtagelse, du får, er normal, hvis du ikke konfigurerer transportsikkerhed ved hjælp af Windows-godkendelse, http://msdn.microsoft.com/en-us/library/ms733089.aspx[5]


<transport> tag er nødvendig i dette tilfælde, selv om du allerede har <message> tag defineret.

Andre referencer 1


I IIS Manager klikker du på dit websted. Du skal være 'i funktionsvisning' (snarere end 'indholdsvisning')


I IIS-sektionen af ​​'feature view' skal du vælge den såkaldte funktion 'authentication' og doulbe klikke på den. Her kan du aktivere Windows-godkendelse. Dette er også muligt (ved at tænke i et af forslagene i tråden) ved en indstilling i web.config (...)


Men måske har du en web.config du ikke ønsker at skrubbe for meget rundt med. Så ville denne tråd ikke være for meget hjælp, hvorfor jeg tilføjede dette svar

Andre referencer 2


Anonym godkendelse kan og i nogle tilfælde være aktiveret for tjenesten, men ikke for webstedet.


Så kontroller, at din websteds 'root' -autentificering kun har Windows-godkendelse aktiveret. Udvid dit websted, vælg 'service' -mappen og sørg for, at din tjeneste har Windows og Anonym-godkendelse aktiveret.


I det mindste havde jeg identisk fejlmeddelelse med grundlæggende MSSQL Master Data Services hjemmeside & service og dette var løsningen. Jeg fik fejlen, da jeg kørte bare tjenesten, men webstedet fungerede næsten ok, MDS Explorer virkede ikke, fordi serviceens godkendelsesindstillinger var forkerte i starten. Årsagen til denne fejlkonfiguration kan være en fejl i MDS Configuration Manager, når du opretter ny MDS site?


Så i mit tilfælde skulle problemet ikke løses ved at lave nogen særlig redigering til web.config eller ApplicationHost.config-filer, men bare at vælge korrekte godkendelsesindstillinger for hjemmesiden og det er service i IIS-manager. Jeg er ikke sikker på at dette er tilfældet her, men måske værd at prøve?

Andre referencer 3


I et særligt dumt øjeblik fik jeg også denne fejl:


WCF Undtagelse: ... Denne tjeneste kræver 'Anonym' -autentificering, men det er ikke aktiveret for IIS-applikationen, der er vært for denne tjeneste


Jeg indså til sidst, at min web.config ikke havde en 'autentificering' tag i 'system.web' overhovedet. Ikke underligt, at IIS klagede over autentificeringsproblemer!


Løsningen af ​​problemet var så simpelt som at tilføje:


  <system.web>
    <authentication mode="Windows" />


Dumt, jeg ved ... men jeg håber det hjælper!