web-dev-qa-db-fra.com

Déploiement IIS7 - dupliquez la section 'system.web.extensions / scripting / scriptResourceHandler'

Lors de la tentative de déploiement d'un site Web .net 3.5 sur le pool d'applications par défaut d'IIS7 dont la section de structure est définie sur 4.0, le message d'erreur suivant s'affiche.

Une section "system.web.extensions/scripting/scriptResourceHandler" en double est définie.

Commenter les lignes incriminées n'a pas aidé non plus. Des indications sur ce que je dois faire ou regarder?

203
user20358

Si votre plan est de déployer sur un IIS dont un pool d'applications s'exécute sous .net 4.0, vous devrez nettoyer le fichier web.config contenant toutes les définitions de section pointant vers .net 3.5. La raison de cet échec est que ces définitions de section sont déjà incluses dans le fichier web.config racine dans .NET 4.0 (voir% windir%\Microsoft.net\framework\v4.0.30319\config\machine.config) qui incluent tout le système. web.extensions déjà déclaré.

Une autre solution rapide consiste à définir le pool d'applications sur 2.0, comme votre ordinateur de développement semble l'avoir.

324

La solution pour moi était de changer la version du framework .NET dans les pools d'applications de v4.0 à v2.0 pour le pool d'applications par défaut:

enter image description here

47
DaveDev

Si, comme moi, vous avez besoin de cibler la v4 mais que vous ne pouvez construire avec .net 3.5, suivez les instructions ici . Remplacez simplement dans votre web.config tout le contenu du <configSections> avec:

<configSections>
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
  <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions,  Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
      <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
      <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
      <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
    </sectionGroup>
  </sectionGroup>
</sectionGroup>
47
Johann

Le problème est lié à la piscine par défaut 4.0. Utilitaires: Administrateur IIS serveur installé dans le serveur qui a créé le répertoire d'utilisateurs. [Entrez la description de l'image ici] [1] framework! [entrez la description de l'image ici] [2]

En savoir plus sur le problème et sur la procédure d'administration centrale de SharePoint 2010

----- via Google Translate -----

Le problème est que le pool est en défaut. Solution Net 4.0: entrez server IIS Manager pour définir les valeurs sur le côté droit des pools d'applications.! [Entrez la description de l'image ici] [1] et changez la version du framework! [Entrez la description de l'image ici] [2]

Cela devrait résoudre le problème de l'installation de l'administration centrale de SharePoint 2010

3
Aldo Flores Reyes

Nécromancie.
Si vous n'avez aucune entrée config-sections ni handler/module dans votre fichier web.config dans system.web.extensions, ce problème est dû au fait que vous/quelqu'un d'autre avez copié un projet VisualStudio (2013/2015/2017) avec les fichiers cachés non cachés.

Pour cette raison, il ne copie pas seulement .git, mais aussi .VS, qui contient un fichier IIS-Express applicationhost.config, qui pointe vers les fichiers web.config à chemins qui n'existent pas (ou pire, chemins qui existent, mais n'ont pas le même contenu) ...

Solution:
Supprimez le fichier applicationhost.config du dossier .VS.
Ou supprimez simplement le dossier .VS.
Visual Studio le recréera.

3
Stefan Steiger

Définissez le pool d'applications sur 2.0, je l'ai fait et j'ai travaillé.

Mon application était une application ASP.Net3.5 (utilisant la version 2 du framework). Lorsque les applications ASP.Net 3.5 ont été créées, Visual Studio a ajouté automatiquement scriptResourceHandler au fichier web.config. Les versions ultérieures de .Net mettent cela dans le fichier machine.config. Si vous exécutez votre application ASP.Net 3.5 avec le pool d'applications version 4 (selon l'ordre d'installation, il s'agit du pool d'applications par défaut), vous obtiendrez cette erreur.

Lorsque je suis passé à utiliser le pool d'applications version 2.0. L'erreur est partie. J'ai ensuite dû gérer l'erreur lorsque je servais .svc WCF:

Erreur HTTP 404.17 - Introuvable. Le contenu demandé semble être un script et ne sera pas servi par le gestionnaire de fichiers statiques.

Après une enquête, il semble que je devais enregistrer le gestionnaire WCF. en utilisant les étapes suivantes:

  1. ouvrez l'invite de commandes Visual Studio (en tant qu'administrateur)
  2. accédez à "C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation"
  3. Exécuter servicemodelreg -i
2
Paul Diggle

Dans mon cas, cela s'est produit après la conversion de la solution entière (à l'aide d'une extension appelée Target Framework Migrator) à la version 4.6.2, mais j'ai finalement annulé les modifications et retourné à la version 3.5 (la solution est versionnée par TFS). Pour résoudre ce problème, j'ai uniquement converti le projet problématique (qui utilisait IIS Express pour s'exécuter) en 4.6.2, puis en 3.5.

1
NoHero
1
Tobiasopdenbrouw

Dans mon cas, je voulais ajouter manuellement la règle urlrewrite et je ne pouvais pas voir l'erreur évidente (j'ai raté la balise <rules>):

mauvais code:

    <rewrite>
      <rule name="some rule" stopProcessing="true">
        <match url="some-pattenr/(.*)" />        
        <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
      </rule>
    </rewrite>    

  </system.webServer>
</configuration>

code approprié (avec balise rules):

    <rewrite>
      <rules>
        <rule name="some rule" stopProcessing="true">
          <match url="some-pattenr/(.*)" />        
          <action type="Redirect" url="/some-ne-pattenr/{R:1}" />
        </rule>
      </rules>
    </rewrite>

  </system.webServer>
</configuration>
0
Mariusz Pawelski

Dans mon cas, j'avais 2 applications différentes partageant le même pool d'applications. La première utilisait le framework .net4.5 et la nouvelle utilisait la version 2.0. Lorsque j'ai remplacé la deuxième application par son propre pool d'applications, il a commencé à fonctionner correctement sans modification du fichier web.config.

0
Dowlers

Une autre façon d'éviter ce problème qui pourrait aider les autres est de créer votre service Web .net à la version 4.0 ou supérieure, si possible.

0
Aelphaeis

Je l'ai résolu en procédant comme suit:

  1. J'ai créé un nouveau groupe d'applications dans IIS.
  2. Ouvrez les paramètres avancés du site ou de l'application Web qui rencontre ce problème.
  3. Et définissez le groupe de la nouvelle application.

Ici vous avez les images de ces étapes:

Create a new application's group

After you create the application's group

Set the application group in your site or web app

0
Giovanny Farto M.

Ce message d'erreur semble apparaître dans différentes situations.

Dans mon cas, en plus du fichier Web.Config de mon application, j'avais un fichier Web.Config supplémentaire dans le dossier racine (C:\Inetpub\www.root). Probablement parti après quelques essais, j'avais tout oublié et je ne pouvais pas comprendre le problème.

Le supprimer a résolu le problème pour moi.

0
nassosk

Ma résolution était un peu stupide.

  • J'ai installé une copie de .net 3.5

  • Création d'un autre pool d'applications et sélection de .net 3.5 (2.0.5077 dans le menu déroulant)

  • Ajout de mon site à ce pool d'applications

  • Les anciennes et les nouvelles piscines ont été recyclées et le site a commencé à fonctionner.

Cela m'est venu à l'idée de ne pas avoir la version 3.5 installée, même si les fonctionnalités d'activation de Windows le disaient et de créer un autre pool d'applications à utiliser. J'espère que cela aide les autres.

0
TheGhoul

C'est peut-être la mauvaise réponse pour vous. Mais c'était le premier coup sur Google quand j'ai essayé de résoudre mon problème. Cela dit ...

Le même message d'erreur s'est également produit pour moi, mais lorsque j'ai essayé d'exécuter IIS Express via Visual Studio.

Mon problème était que j'avais commis par erreur mon applicationhost.config à TFS. Plus tard, lorsque j'ai essayé d'exécuter le projet sur mon ordinateur portable après avoir reçu les derniers commits. c'est à ce moment que l'erreur s'est produite.

J'ai trouvé que le chemin du répertoire virtuel était incorrect.

<virtualDirectory path="/" physicalPath="C:\Users\giddan\Documents\Visual Studio 2015\Projects\ProjectName\DeV.ProjectName\DeV.ProjectName.Web" />

J'espère que cela aidera quelqu'un!

Ceci est mon premier post, alors soyez gentil:)

0
MrFile