IIS7の導入-「system.web.extensions / scripting / scriptResourceHandler」セクションが重複しています


209

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

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

問題のある行をコメントアウトしても、効果はありませんでした。私が何をするか、または見る必要があるかについてのポインタはありますか?

回答:


338

.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はすでに宣言されています。

別の簡単な解決策は、開発マシンと同じようにアプリケーションプールを2.0に設定することです。


ありがとう。私は実際にいくつかの詳細..周りいじりの後、この回避策を考え出した
user20358

3
説明していただきありがとうございます。構成ファイルからセクションを削除する解決策を見続けてきましたが、「構成ファイルの一部を切り取って解決策にするにはどうすればよいのでしょうか?」
Adam Bruss 2013

13
アプリプールが2.0ではなく4.0に設定されました!
RolandoCC 2014年

1
これは簡単でした。この古いサイトを2.0アプリプールに切り替えて、ビオラが機能します。ありがとう!
mgrenier 2014

1
web.configの.net 3.5セクションを削除するだけでうまくいきました
Anand

49

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

ここに画像の説明を入力してください


13
そして、実際にアプリケーションで.NET 4.0を使用している場合はどうでしょうか。
Michael Paulukonis

3
@MichaelPaulukonis私はこの問題を抱えていましたが、私のWebサイトが継承しているルートWebサイトにweb.configがあることがわかりました。
グアノメ2013年

@MichaelPaulukonis、そのようなPFFTが起こるでしょう!
DaveDev 2015

アプリを3.5から4.0にアップグレードしたときにこの問題が発生しました。アプリプールは正しく更新されましたが、web.configが古くなっています。Web.configは、4.0以降はネイティブで明示的に追加する必要のないセクショングループをすべて追加しようとしました。
drizin 2017

48

私のように、v4をターゲットにする必要があるが、.net 3.5でのみビルドできる場合は、こちらの手順に従ってください。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>


3
あなたのものは私のエラーを解決した唯一の解決策でした!どうもありがとう!
Devdatta Tengshe 2013年

1
これも私の問題を解決しました。サーバーはIIS6からIIS7.5にアップグレードされました。IIS6ではv4.0で動作しましたが、IIS7.5ではこのweb.configの変更が必要でした。
johna 2014

これは最高でした。
mzonerz 2016

PublicKeyTokenの値は大文字と小文字が区別されます(答えと同じように見えるはずです)。私は大文字を使っていましたが、うまくいきませんでした。
ビョルン

3

El problema es porque el pool por Defecto esta en .net 4.0解決策:管理者IISサーバーlado derecho establecer valores de grupos de aplicaciones。![ここに画像の説明を入力してください] [1] y cambiar la vercion del framework![ここ] [2]

Con esto pudes solucionar el problema al instalar la administracion central SharePoint 2010

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

問題は、プールがデフォルトであるためです。Net 4.0ソリューション:サーバーIISマネージャーを入力して、アプリケーションプールの右側に値を設定します。![ここに画像の説明を入力してください] [1]フレームワークのバージョンを変更してください![ここに画像の説明を入力してください] [2]

これにより、SharePointサーバーの全体管理2010のインストールに関する問題が解決されます。


22
StackOverflowへようこそ!十分な英語力がない場合は、Google翻訳で回答してください。コミュニティは、編集して奇妙なフレーズを改善します。お返事ありがとうございます。||||| Google翻訳経由||||| StackOverflowをビエンベニード!Siは何TIENEドミニオ・デ・イングレスsuficiente、ポル賛成、ejecute A TravesのデSUS respuestas usted Google翻訳ません。La comunidadmejoraráfrasesextrañasen laedición。Gracias por su respuesta。
Andrew Kozak 2011


3

ネクロマンシング。
web.configにsystem.web.extensions config-sectionsまたはhandler / moduleエントリがない場合、この問題は、非表示にしたときに、あなた/誰かがVisualStudio-Project(2013/2015/2017)コピーしたために発生します-files unhidden

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

解決策:
.VSフォルダーのapplicationhost.configファイルを削除します。
または、.VSフォルダを完全に削除します。
Visual Studioが再作成します。


優れた説明
ウィリアムベロ

2

私のアプリはASP.Net3.5アプリでした(バージョン2のフレームワークを使用)。ASP.Net3.5アプリが作成されると、Visual Studioは自動的にscriptResourceHandlerをweb.configに追加しました。それ以降のバージョンの.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を実行します。


1

私の場合、(Target Framework Migratorと呼ばれる拡張機能を使用して)ソリューション全体を4.6.2に変換した後に発生しましたが、変更を取り消して3.5に戻しました(ソリューションはTFSによってバージョン管理されています)。これを解決するために、問題のあるプロジェクト(IIS Expressを使用して実行していた)のみを4.6.2に変換し、その後3.5に戻しました。


ありがとう。元に戻したり変更を元に戻したりすると、アプリが.NET 3.5状態に正しくならないようです。
イマン

0

他の人を助ける可能性があるこの問題を回避するもう1つの方法は、可能であれば.net Webサービスをバージョン4.0以降にビルドすることです。


0

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


0

私の決意はちょっとばかげていました。

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

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

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

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

Windowsの機能をオンにする機能で私がインストールしたと言っていて、使用する別のアプリプールを作成しているにもかかわらず、3.5がインストールされていないことが原因でした。これが他の人の役に立つことを願っています。


0

私の場合、手動で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

私はそれを解決し、次の手順を実行しました:

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

ここにこれらのステップのイメージがあります:

新しいアプリケーションのグループを作成する

アプリケーションのグループを作成した後

サイトまたはWebアプリでアプリケーショングループを設定する


0

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

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

それを削除することで、問題は解決しました。


0

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

私にも同じエラーメッセージが表示されましたが、Visual Studioを介してIIS Expressを実行しようとしました。

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

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

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

これが誰かを助けることを願っています!

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.