web-dev-qa-db-ja.com

IIS 7の展開 - 'system.web.extensions / scripting / scriptResourceHandler'セクションが重複しています

フレームワークセクションが4.0に設定されているIIS 7の既定のアプリプールに.net 3.5 Webサイトを展開しようとすると、次のエラーが発生します。

'system.web.extensions/scripting/scriptResourceHandler'セクションが重複して定義されています。

問題のある行をコメントアウトしても役に立ちませんでした。私がしなければならないことや見なければならないことへのポインタはありますか?

202
user20358

あなたの計画が.net 4.0で実行されているアプリケーションプールを持つIISにデプロイするのであれば、.net 3.5を指すすべてのセクション定義を含むweb.configをクリーンアップする必要があります。これが失敗する理由は、これらのセクション定義が.NET 4.0のルートweb.config(%windir%\ Microsoft.net\framework\v4.0.30319\config\machine.configを参照)に既に含まれているためです。 web.extensionsは既に宣言されています。

もう1つの簡単な解決策は、開発マシンが持っているように、アプリケーションプールを2.0に設定することです。

322

私にとっての解決策は、アプリケーションプールの.NET Frameworkのバージョンをデフォルトのアプリケーションプールのv4.0からv2.0に変更することでした。

enter image description here

47
DaveDev

私と同じように、v4をターゲットにする必要があるが.net 3.5でしかビルドできない場合は、 here の指示に従ってください。あなたのweb.configの<configSections>の内容全体を以下のように置き換えるだけです。

<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>
46
Johann

問題を解決するために.net 4.0の問題点:管理者を管理するIISサーバーlado derecho establecer valores de grupos de aplicaciones。![ここに画像の説明を入力] [1] y cambiar la vercion delフレームワーク![ここに画像の説明を入力] [2]

Con estoが、SharePoint 2010の管理上の問題を解決します

----- Google翻訳経由-----

問題は、プールがデフォルトになっているためです。 Net 4.0ソリューション:server IIS Managerと入力して、アプリケーションプールの右側に値を設定します。 [ここに画像の説明を入力] [1]およびフレームワークのバージョンを変更します![ここに画像の説明を入力] [2]

これにより、SharePoint Central Administration 2010のインストールに関する問題が解決されます。

3

アプリケーションプールを2.0に設定しました。

私のアプリはASP.Net3.5アプリでした(フレームワークのバージョン2を使用)。 ASP.Net3.5アプリケーションが作成されたとき、Visual Studioは自動的にweb.configにscriptResourceHandlerを追加しました。最近のバージョンの.Netはこれをmachine.configに追加しました。バージョン4のアプリプールを使用してASP.Net 3.5アプリを実行した場合(インストールの順序によってはこれが既定のアプリプールです)、このエラーが発生します。

バージョン2.0のアプリプールの使用に移行したとき。エラーは消えました。私はそれからWCF.svcを提供するときエラーに対処しなければなりませんでした:

HTTPエラー404.17 - 見つかりません要求されたコンテンツはスクリプトのように見え、静的ファイルハンドラによって処理されません

調査の結果、WCFハンドラを登録する必要があるようです。以下のステップを使用してください。

  1. (管理者として)Visual Studioのコマンドプロンプトを開きます。
  2. 「C:\ Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation」に移動します。
  3. Servicemodelreg -iを実行します。
2
Paul Diggle

ネクロマンシング.
web.configにsystem.web.extensionsのconfig-sectionやhandler/moduleのエントリがない場合、この問題はあなた/他の人がVisualStudio-Projectをコピーしたために起こります(2013/2015/2017)隠しファイルを隠さないようにしながら

そのため、.gitだけでなく、IIS-Expressapplicationhost.configファイルを含む.VSもコピーされます存在しないパスにあるweb.configファイルを指しています(または、もっと悪いことに、存在するが同じ内容を持たないパス)...

解決策:
.VSフォルダ内のapplicationhost.configファイルを削除します。
または単に.VSフォルダを完全に削除してください。
Visual Studioが再作成します。

2
Stefan Steiger

私の場合は、解決策全体を(Target Framework Migratorという拡張子を使用して)4.6.2に変換したが、変更を元に戻して3.5に戻った(解決策はTFSによってバージョン管理されています)。これを解決するために、問題のあるプロジェクト(実行にIIS Expressを使用)を4.6.2に変換してから3.5に戻しました。

1
NoHero
1

私の場合、私は手動でurlrewriteルールを追加しようとしましたが、明白なエラーを見ることができませんでした(私は<rules>タグを逃しました)

不正なコード:

    <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>

適切なコード(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

私の場合は、2つの異なるアプリが同じアプリプールを共有していました。最初のものは.net4.5フレームワークを使っていて、新しいものは2.0を使っていました。 2番目のアプリを独自のアプリプールに変更すると、web.configを変更しなくても正常に機能し始めます。

0
Dowlers

他の人に役立つ可能性があるこの問題を回避するためのもう1つの方法は、可能であればバージョン4.0以上にあなたの.net Webサービスを構築することです。

0
Aelphaeis

私はそれを解決し、次のステップを実行しました:

  1. 私はIISで新しいアプリケーションのグループを作成しました。
  2. この問題が発生しているサイトまたはWebアプリケーションの詳細設定を開きます。
  3. そして新しいアプリケーションのグループを設定します。

ここにあなたはこれらのステップのイメージを持っています:

Create a new application's group

After you create the application's group

Set the application group in your site or web app

0

このエラーメッセージはさまざまな状況で表示されるようです。

私の場合は、アプリケーションのWeb.Configファイルの上に、ルートフォルダー(C:\ Inetpub\www.root)に追加のWeb.Configファイルがありました。たぶんいくつかのテストの後にそこに残っていました、私はそれについてすべてを忘れていました、そして、問題が何であるか把握することができませんでした。

それを削除することは私にとって問題を解決しました。

0
nassosk

私の決断はちょっとばかげていた。

  • .net 3.5のコピーをインストールしました

  • 別のアプリプールを作成し、.net 3.5を選択しました(ドロップダウンに2.0.5077と表示されています)。

  • そのアプリプールに私のウェブサイトを追加しました

  • 古いプールと新しいプールをリサイクルし、サイトは機能し始めました。

Windowsの機能をオンにしても、3.5をインストールしていないのですが、別のアプリケーションプールを作成して使用します。これが他の人に役立つことを願っています。

0
TheGhoul

これはおそらくあなたにとって間違った答えです。しかし、私が私の問題を解決しようとしたとき、これはグーグルで最初のヒットでした。ということで...

同じエラーメッセージが私にも発生しましたが、Visual StudioでIIS Expressを実行しようとしたとき。

私の問題は、私が誤ってapplicationhost.configをTFSにコミットしたことです。私が最新のコミットを取得した後、私のラップトップでプロジェクトを実行しようとしたときの後半です。それがエラーが発生したときです。

仮想ディレクトリのパスが間違っていることがわかりました。

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

これが誰かに役立つことを願っています!

これが私の最初の投稿なので、やさしくしてください:)

0
MrFile