.NET 4.0にアップグレードするときの Config Groupに関する問題
-
13-09-2020 - |
質問
だから私たちは3.5 SP1 - > .NET 4から私たちのサイトをアップグレードしました。
サイトを実行すると、次の設定グループを読み込めなかった内部サーバーエラー(500)が表示されます。
<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="true" enableCaching="true" />
<webServices>
<jsonSerialization maxJsonLength="999999" />
</webServices>
</scripting>
</system.web.extensions>
.
このセクションとWebサイトは罰金を鳴らしました(しかし、上記の必須の財産のため、JSONに問題を抱えています)。
この問題にスレッドを読みました、そしてそれらのほとんどは「あなたのアプリケーションプールは4.0稼働していない」と言っています。そしてそれはそれほど問題ではありません。
私はまたiisを読んでいると言っているスレッドは、何らかのmachine.configファイルを読んでいます。
.NET 4では、web.configのセクションの多くがmachine.configに移動されました。
だから我々はこのセクションをweb.configの上に戻します:
<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
</sectionGroup>
</sectionGroup>
</sectionGroup>
.
とウェブサイトは今仕事をしているようです。
それでも、これが正しい解決策であれば少し心配しています。
アイデア人の人?これは正しい修正ですか?
編集:
3週間、回答がありません...=)
解決
私は答えがなかったように、そして豊富なグーグルが愛を込めていませんでした、私は元の修正を刺すことにしました(system.web.extensionsセクションをweb.configに戻す)。
他のヒント
私は最近この問題に遭遇し、いくつかのトラブルシューティングの後に解決することができました。私が何をしたこともあなたの問題を解決するのに役立ちます。 1.このサイトに対して実行しているアプリプールが.NET 4パイプラインを使用していることを確認してください。 2. CSPROJ(または.SPROJがVBプロジェクトの場合)を開き、ファイルを通過し、v2.0フレームワークファイルへのハードコード参照があるかどうかを確認します。私の場合、アプリを強制的に2.0ランタイムを使用するように強制したv2.0コンパイラパスを使用していた「ビルドの後」タスクがありました。それは以下のようなものでした。
<Target Name=”AfterBuild” Condition=”’$(MvcBuildViews)’==’true’”>
<AspNetCompiler Condition=”’$(IsDesktopBuild)’ != ‘false’” VirtualPath=”temp” ToolPath=”$(WINDIR)\Microsoft.NET\Framework\v2.0.50727” PhysicalPath=”$(ProjectDir)\..\$(ProjectName)” />
<AspNetCompiler Condition=”’$(IsDesktopBuild)’ == ‘false’” VirtualPath=”temp” ToolPath=”$(WINDIR)\Microsoft.NET\Framework\v2.0.50727” PhysicalPath=”$(OutDir)\_PublishedWebsites\$(ProjectName)” />
.
v4.0に変更したり、さらに良いものにしてください。 助けを願っています。
-vamsi
助けてもしなくてもよい情報の2ビットの情報。
- 上記のセクショングループとマイマシンのセクショングループとの唯一の違いは、ここではVersion= 3.5.0.0、およびmachine.configのversion= 4.0.0.0です。 1。
- イベントログのエラーは、「サイト用のすべてのISAPIフィルタをロードできませんでした」はSystem.Web.Extensionsのインストールがあります.Net 4?
これについてもっとテストしたいのですが、残念ながら私は生産システムでこの行動を見るだけで、DEVシステムではありません。