2010-04-14 8 views
11

J'ai installé. Net Framework 4 sur mon Windows 2003 entreprise x64, a écrit l'application simple asp.net 4.0 (page default.aspx seulement). L'application fonctionne très bien si la demande est de default.aspx, pas au site racine:ASP.net 4.0 default.aspx problème sur IIS6

contoso.com/ - ne fonctionne pas (Obtenir erreur 404)

contoso.com/default.aspx - œuvres. Default.aspx est dans la liste des documents par défaut dans IIS.

S'il vous plaît aider.

+1

ajouter quoi et où? – Dimonina

Répondre

0

Etes-vous sûr que c'est default.aspx pas default.asp dans la liste des documents par défaut?

+0

absolument. Le premier numéro de la liste – Dimonina

+0

L'avez-vous ajouté vous-même ou était-il déjà là? Y a-t-il une chance que ce soit une faute de frappe? –

+0

Il était déjà là – Dimonina

4

Vous trouverez la réponse ici http://johan.driessen.se/archive/2010/04/13/getting-an-asp.net-4-application-to-work-on-iis6.aspx

.Net 4.0 ne se permet pas de fonctionner avec IIS afin que vous devez exécuter la commande (alors que dans le dossier c: \ windows \ system32): cscript Iisext.vbs/C ENFILE: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll ou dans votre cas puisque vous exécutez x64

cscript Iisext.vbs/ENFILE C: \ WINDOWS \ Microsoft. NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll

+0

.net 4.0 L'extension isapi est activée. Le site fonctionne bien. Toujours pas de réponse – Dimonina

+1

Exécutez cscript iisext.vbs/EnFile C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_isapi.dll, puis redémarrez IIS –

+0

@Dimonina: Est-ce que ce travail? – Amitabh

20

Trouvé une correction dans eemingly emplacement sans rapport - essayez de définir la clé de Registre "de EnableExtensionlessUrls" à 0:

ASP.NET 4 Breaking Changes -> ASP.NET 2.0 Applications Might Generate HttpException Errors that Reference eurl.axd:

Dans le Registre Windows, ouvrez le nœud suivant: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ 4.0. 30319.0

  1. Créez une nouvelle valeur DWORD nommée EnableExtensionlessUrls.
  2. Définissez EnableExtensionlessUrls sur 0. Cela active le comportement de l'URL sans extension.
  3. Enregistrez la valeur de registre et fermez l'éditeur de registre.
  4. Exécutez l'outil de ligne de commande iisreset, qui permet à IIS de lire la nouvelle valeur de registre.
+0

n'a pas fonctionné pour moi :-( – Dimonina

+0

Cela a fonctionné pour moi! –

+0

Juste comme une tête pour quiconque qui se heurte à ce problème, nous avons constaté que l'installation du correctif pour ce problème http : //stackoverflow.com/questions/3720720/how-serious-is-this-new-asp-net-security-vulnerability-and-how-can-i-workaround-i effacé cette clé reg, qui a recréé cette Une fois que nous avons ré-appliqué ce correctif, les documents par défaut ont fonctionné à nouveau correctement –

1

Je n'ai pas assez de points pour commenter apparemment, mais je voulais dire que la solution de Will WM a fonctionné pour moi. L'ajout de EnableExtensionlessUrls au registre a corrigé le problème.

En note, si vous exécutez aspnet_regiis à tout moment, il supprimera cette valeur et vous devrez l'ajouter à nouveau.

1

J'utilise l'expression rationnelle suivante comme première règle avec Ionics Isapi Rewriter pour les sites Web en cours d'exécution sur ASP.NET 4 sur IIS 6 pour remédier aux problèmes causés par le breaking change introduit avec ASP.NET 4 :

RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2 

Cela me permet d'utiliser à nouveau des URLs sans extension.

Notez que le deuxième groupe capture la chaîne de requête si elle est présente et la restitue à l'URL réécrite.

Et oui, c'est a feature, not a bug.

+0

cela a fonctionné pour moi –

0

Vous obtiendrez également cette erreur sur les répertoires virtuels ASP.NET 2.0 dans IIS6 si vous avez un autre répertoire virtuel sur le même site qui est défini sur 4.0 et le DefaultWebSite est défini pour utiliser ASP.NET 4.0.

La solution consiste à remplacer DefaultWebSite par ASP.NET 2.0. Votre répertoire virtuel 4.0 fera toujours bien sous ce site Web.

2

Modifiez la version ASp.Net de la version 4.0 à la version 2.0 et appliquez-la. et revenir à la version Asp.Net à 4.0. Cela permettra de résoudre le problème.

Questions connexes