2012-09-28 8 views
15

Ich habe eine asp.net 4.0-Anwendung, die unter cassini einwandfrei funktioniert, aber wenn ich zu IIS bereitstellen, erhalte ich den obigen Fehler. Es läuft unter dem Standard-App-Pool, den eine Reihe anderer Apps verwenden und gut funktionieren. Hier ist eine Kopie meiner Web-Config, die die Quelle sein kann:Fehlermeldung 401.2 .: Nicht autorisiert: Anmeldung aufgrund der Serverkonfiguration fehlgeschlagen. Wenn Anwendung bereitgestellt

<!-- 
    For more information on how to configure your ASP.NET application, please visit 
    http://go.microsoft.com/fwlink/?LinkId=169433 
    --> 

<configuration> 
    <connectionStrings> 
    <add name="FMLconnect" connectionString="Server=192.168.20.125;Port=;Database=FML;Uid=******;Pwd=*****;pooling=false;" providerName="MySql.Data.MySqlClient" /> 
    </connectionStrings> 

    <system.web> 
    <httpHandlers> 
     <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
     <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false"/> 
     <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false"/> 
     <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false"/> 
     <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false"/> 
     <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false"/> 
     <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/> 
     <add type="Telerik.ReportViewer.WebForms.HttpHandler, Telerik.ReportViewer.WebForms, Version=5.1.11.928, Culture=neutral, PublicKeyToken=a9d7983dfcc261be" path="Telerik.ReportViewer.axd" verb="*" validate="true"/> 
    </httpHandlers> 
    <compilation debug="true" targetFramework="4.0" > 
     <assemblies> 
     <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <!--<add assembly="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>--> 
     <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/> 
     <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     </assemblies> 
    </compilation> 




    </system.web> 

    <system.webServer> 
     <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    </system.webServer> 
</configuration> 

Antwort

12

Mit IIS, das wirklich nur klingt wie Sie die Authentifizierungseinstellungen für Ihre Anwendung in IIS Admin überprüfen müssen. Versuchen Sie diesen Link: http://support.microsoft.com/kb/253667

Das für IIS6 ist, Sie nicht erwähnt, ob Sie IIS wurden 6 oder 7. Für IIS 7, versuchen Sie dies: http://support.microsoft.com/kb/942043

+0

Es ist IIS 7. Sieh diese Support-Artikel früher, machte keinen Unterschied. – user1240615

+4

Für mich wurde Windows-Authentifizierung nicht standardmäßig mit IIS 7 installiert. – roadsunknown

+0

Danke imjohnking, aus irgendeinem Grund Windows-Authentifizierung wurde nicht auf meinem entweder installiert. Die Lösungsschritte auf http://support.microsoft.com/kb/942043 haben mir geholfen, meine Anwendung zum Laufen zu bringen. –

6

Wenn Sie mit IIS Express arbeiten, Scheck die web.config

 <!-- AUTHENTICATION 
     This section sets the authentication policies of the application. Possible modes are "Windows", 
     "Forms", "Passport" and "None" 
--> 
    <authentication mode="Windows"/> 
    <identity impersonate="true"/> 
    <!-- AUTHORIZATION 
     This section sets the authorization policies of the application. You can allow or deny access 
     to application resources by user or role. Wildcards: "*" mean everyone, "?" means anonymous 
     (unauthenticated) users. 
--> 
    <!--<authorization> 
     <deny users="?"/>--> 
     <!-- Allow all users --> 
     <!-- <allow  users="[comma separated list of users]" 
         roles="[comma separated list of roles]"/> 
       <deny  users="[comma separated list of users]" 
         roles="[comma separated list of roles]"/> 
     --> 
    <!--</authorization>--> 
4

Versuchen Sie folgendes:

  • Öffnen Sie IIS-Manager
  • Klicken Sie auf Ihrem Webserver (dh der Server selbst; keine Site) in der Verbindungsleiste.
  • Wählen Sie Authentifizierung aus dem IIS-Abschnitt.
  • Protokolle bei Bedarf aktivieren. Alles, was hier deaktiviert ist, ist für Websites, die auf diesem Server gehostet werden, nicht verfügbar. Alles, was hier aktiviert ist, verwendet die Einstellungen der einzelnen Website.
  • IIS neu starten (start, run, cmd (als Administrator ausführen), iisreset -noforce)
2

Dies könnte eine sehr späte Antwort, aber das Problem in meinem Fall war ein falsch konfiguriertes Profil veröffentlichen (Verwenden von Web Deploy). Sobald ich die Option Precompile during publishing (unten) abgewählt und neu veröffentlicht habe, ist es wieder normal geworden und ich konnte darauf zugreifen.

Ich versuchte auch, es ein paar Mal zu aktivieren/deaktivieren, und das bestätigte, dass es der einzige Grund war. Das Problem tauchte auf, als ich es wieder aktivierte und verschwand, als ich es deaktivierte.

enter image description here

Und um ehrlich zu sein, ich habe immer noch keine Erklärung über das, was Auswirkungen hat diese Option genau und warum ist es die Ursache für ein solches Problem. Ich habe dieses question gefunden, aber ich forsche noch.

7

Ich habe ein VS2012-Projekt auf 2013 aktualisiert und die Project-Eigenschaft von Windows-Authentifizierung von Enabled zu Disabled geändert, und ich bekam dann diesen Fehler. Einfache Änderung löste das Problem. Gehen Sie zu Lösung und klicken Sie auf Eigenschaften, um dies zu ändern.

Wenn Sie IISExpress verwenden, sollten die Linien in etwa so aussehen:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication> 
<IISExpressWindowsAuthentication>enabled</IISExpressWindowsAuthentication> 
0

Ich war auch diesen Fehler versucht, eine bestehende ASP.NET WebForms Anwendung unter IIS Express (aber das laufen gilt wahrscheinlich auch für IIS).

Die Anwendung wurde in der applicationhost.config verwenden, um den Pool Clr4IntegratedAppPool Anwendung konfiguriert. Ändern der applicationPool Attribut zu Clr4ClassicAppPool löste das Problem für mich.

6

Ich hatte gerade das gleiche Problem. Keine der Fixes, die ich gefunden habe, funktionierte, also werde ich hier nur posten, falls es jemandem hilft.

Für mich ist das Problem auf diese Weise gelöst wurde:

  • Wählen Sie „Anwendungspools“
  • Rechtsklick auf den Anwendungspool verwenden, und wählen Sie „Erweiterte Einstellungen“

    • Öffnen Sie IIS-Manager
    • Setzen Sie "32-Bit-Anwendungen aktivieren" auf "Wahr"
    • Klicken Sie auf "OK", um das Dialogfeld zu schließen
    • Klicken Sie mit der rechten Maustaste auf die Anwendung Pool wieder und wählen Sie "Recycle"

    Hoffe, dass jemand anderes helfen wird! Das hat mich verrückt gemacht.

  • +1

    Wir haben dieses Problem auf einem bestimmten Server, aber nicht auf anderen. Die Einstellung Enable 32bit "behebt" das Problem, aber ich weiß nicht warum (noch - ich hoffe immer noch, eine Lösung zu finden, die für mich Sinn macht). Danke für den Tipp, zumindest ist es jetzt funktional! –

    +0

    Das hat mich verrückt gemacht und das Einschalten von 32-Bit hat die Seite wieder laufen lassen, aber ich habe keine Ahnung warum. Ich denke, dass es plötzlich passiert ist, nachdem ich die Ordner bin und obj im Präsentationsprojekt gelöscht habe, aber ich weiß nicht, ob das der Fall war. Frustrierend. – kentrh

    +0

    Vielen Dank, mein Herr, habe viele andere Antworten auf verschiedene Fragen ausprobiert und das hat das Problem gelöst – John

    Verwandte Themen