2012-03-16 4 views
27

Lorsque je passe mon projet ASP.NET MVC à partir du serveur Web Cassini vers IIS Express, cela est ajouté à mon dossier applicationhost.config:IIS Express désactive automatiquement l'authentification anonyme pour mon projet, pourquoi?

<location path="MyProject"> 
    <system.webServer> 
     <security> 
      <authentication> 
       <anonymousAuthentication enabled="false" /> 
       <windowsAuthentication enabled="false" /> 
      </authentication> 
     </security> 
    </system.webServer> 
</location> 

Cela cause le site de ne pas charger avec 401,2 - Non autorisé et je ne peux pas corrigez-le au niveau Web.config - il se plaindra alors que la section est verrouillée au niveau parent (HTTP 500.19).

Je peux le réparer en modifiant le fichier applicationhost.config mais je ne comprends pas pourquoi je devrais le faire lorsqu'aucune telle section n'est ajoutée pour un projet ASP.NET MVC vanille. Qu'est-ce qui peut être mauvais? J'utilise VS 11 beta mais aussi confirmé ce comportement bizarre en 2010 SP1. IIS Express dit que c'est la version 7.5.

Répondre

58

C'était parce que, pour une raison quelconque, cela était dans mon dossier de csproj:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication> 

Un réglage à enabled résout le problème (il peut également être fait à partir de Visual Studio, sélectionnez projet, F4, définissez Anonyme Authentification dans la grille des propriétés à Activé).

+0

Borek, j'ai eu exactement le même problème. Je pense que c'est quelque chose à voir avec VS 11? (en ce qu'il a écrit ces paramètres) –

+1

Merci, j'ai eu le même problème ici VS 11 Beta. Changer le paramètre ci-dessus a résolu le problème pour moi. Je vous remercie! –

+0

AWESOME @Borek ... Je devenais fou à cause de cela! :) –

4

s'il vous plaît faites un clic droit sur le projet et sélectionnez utiliser iis express avant d'appuyer sur F4.

+1

Merci beaucoup. J'oublie toujours les propriétés toolwindow par rapport aux fichiers de projet. – paulroho

+0

Vous êtes les bienvenus. –

0

Parfois, je faisais face à la même difficulté, mais c'était un peu différent de ce que je vois ici. Dans mon ordinateur portable, j'ai à la fois VS 08 et VS 13, et SQL Server 2008 R2 et 11G XE. Pour les sites Web se connectant à R2 n'a jamais été un problème, mais quand j'ai essayé de construire un site Web utilisant l'appartenance oracle avec asp.net, j'ai trouvé que les pages s'ouvrent mais les pages sous dossier avec les rôles ne s'ouvrent pas et me donne l'accès refusé. Bien que le dossier ait un web.config correct à l'intérieur et que l'utilisateur ait créé le même rôle, il produisait la même erreur. Enfin, j'ai réalisé que j'ai besoin le mécanisme d'authentification en cours et donc j'ajouté le code suivant dans le system.web du web.config:

<authentication mode="Forms"> 
<forms loginUrl="Login.aspx" protection="All" slidingExpiration="true" 
timeout="90" /> 
</authentication> 
<authorization> 
<deny users="?" /> 
</authorization> 
<identity impersonate="false"/> 
<trace 
enabled="false" 
requestLimit="10" 
pageOutput="false" 
traceMode="SortByTime" 
localOnly="true" 
/> 

et il a fait le travail, maintenant mes utilisateurs authentifiés peuvent loginto dossiers désignés! J'espère que cela pourrait aider quelqu'un qui a fait face à des problèmes similaires à moi.