概要
この資料では、Microsoft.NET Framework 4.5、.NET Framework 4.5.1、および.NET Framework 4.5.2 で利用可能な修正プログラム ロールアップ 2996568 について説明します。修正プログラムのロールアップで解決される問題の詳細については、「関連情報」セクションを参照してください。
この修正プログラム ロールアップでは、次のオペレーティング システムの利用可能です。-
Windows Server 2008 R2 SP1
-
Windows 7 SP1
-
Windows Server 2008 SP2
-
Windows Vista SP2
解決策
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、それはこの資料に記載された問題のみを修正するものです。この特定の問題が発生したシステムにのみ適用してください。
この問題を解決するには、修正プログラムを入手するよう、Microsoft カスタマー サポート サービスに問い合わせてください。Microsoft カスタマー サポート サービスの電話番号とサポート コストに関する情報の完全なリストは、次のマイクロソフト web サイトを参照してください。http://support.microsoft.com/contactus/?ws=support注: 特別な場合では、まれに通常サポート コールの発生に料金 Microsoft Support 担当者は、特定の更新で問題が解決されると判断した。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。
詳細
必要条件
この修正プログラムを適用するには、.NET Framework 4.5、.NET Framework 4.5.1、または.NET Framework がインストールされている 4.5.2 が必要です。
再起動の必要性
影響を受けるファイルを使用している場合にこの修正プログラムを適用した後にコンピューターを再起動する必要があります。この修正プログラムを適用する前に、すべての.NET Framework ベースのアプリケーションを閉じることをお勧めします。
修正プログラムの置き換えに関する情報
この修正プログラム パッケージでは、以前にリリースされた修正プログラム パッケージは置き換えられません。
この修正プログラム ロールアップ パッケージで解決される問題
問題 1
この修正プログラムは、.NET Framework 4.5、.NET Framework 4.5.1、または.NET Framework 4.5.2 を使用する場合、 System.IO.Packagingの次の 2 つのスレッド問題を解決します。
-
別のスレッドで大規模なパッケージを使用する場合に、デッドロックが発生する可能性があります。System.IO.Packagingでは、10 メガバイト (MB) よりも大きいパッケージにIsolatedStorageを使用します。2 つ以上のスレッドは、大規模なパッケージを使用して、ときに、デッドロックが発生、場合でも、パッケージには依存しません。デッドロックには、2 つのスレッドが含まれます。IsoloatedStorageFileクラスの別の方法で他の待機しているときにIsolatedStorageFile.Lockのいずれかの待機中です。この問題は、ストアの問題を避けるために、 System.IO.Packagingに同期を追加することによって固定されています。
-
パッケージは、独立した場合でも、別のスレッドで開かれているパッケージからPackagePropertiesを取得するときに、例外が発生する可能性があります。これから発生する最も一般的なコール スタックは次のとおりです。System.Xml.XmlException: Unrecognized root element in Core Properties part. Line 2, position 2. atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part) at
System.IO.Packaging.Package.get_PackageProperties() System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: id atMS.Internal.IO.Packaging.PartBasedPackageProperties.ParseCorePropertyPart(PackagePart part) at System.IO.Packaging.Package.get_PackageProperties() この問題は、内部の共有リソースの競合が原因で発生し、各パッケージにそのリソースのコピーを提供することで解決されます。
問題 2
Windows Presentation Foundation (WPF) アプリケーションは、 UIAutomationサービスの多くの要求を受信すると、大量のメモリを使用できます。メモリは、 System.Threading名前空間からのオブジェクトに属しています。これには、 System.Threading.CancellationTokenSource、 System.Threading.TimerQueueTimer、 System.Threading.Timer、およびその他のいくつかの関連するクラスが含まれます。
これらは、WPF UIAutomation活動の要求を受信すると、WPF のために割り当てられているオブジェクトです。要求のタイムアウト期限 (通常は 3 分間) を経過するまで、最終的に解放されます。要求がすぐに到着した場合、アプリケーションがメモリをリークするようまたはどのようなより多くのメモリを使用するが妥当 (最大 500 MB) です。 この問題を解決するには、タイムアウト期限を待っているのではなく、要求が完了したときに、オブジェクトを解放できます。 問題 3 WPF アプリケーションでは、韓国語入力方式エディター (IME) を使用してテキストを入力すると、編集可能なコンボ ボックスのTextプロパティは変更されません正しくいくつかの場合。 この問題は、さまざまな現象を示すことがあり、アプリケーション (またはコントロールの作成者) がコンボ ボックスの構成方法によって異なります。次に例を示します。-
入力し、退席中] タブ (または別のコントロールにフォーカスを移動)、コンボ ボックスの表示テキストは空の文字列、または、入力前の値に戻ります。
-
コンボ ボックスのTextSearch機能が正しく動作しません。入力されているプレフィックスと一致しないか関連性のないアイテムと一致します。
この問題を解決するには、他の Ime と若干異なっている、韓国語 IME のタイミングに対応するためのロジックを修正できます。
問題 4 タッチを使用して、WPF アプリケーションでドラッグ アンド ドロップ操作を実行した後、次のようなタッチ ジェスチャは無視されます。 ドラッグ アンド ドロップ操作が完了すると、タッチ入力ハンドラーの内部の状態を復元することによってこの問題が解決します。この方法で計算次のタッチ ジェスチャの位置を正しくします。 問題 5 カスタムIAuthenticationModulesを使用する場合は、大幅なパフォーマンスを得るために、新しいAuthenticationManagerの実装を必要に応じて有効にできます。 注: 主要なセキュリティ上のリスクは、コードがスレッド セーフに設計されていない場合に表示されます。PreAuthenticateと認証の方法には、主要な動作の変更があります。以前にされた保証コードが連続して実行されている (グローバル ロックを取得)。新しいの実装では、ロックを取得しないと顧客コードがスレッド セーフを保証する必要があります。 さらに、新しい実装では、 PrefixLookup ・ キャッシュ ・ サイズをレジストリを使用して制御できます。 有効にして、 PrefixLookupの最大長を設定するのには、次のレジストリ キーを使用できます。-
グローバル構成[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319]"System.Net.AuthenticationManager.HighPerformance"=dword:00000001
"System.Net.AuthenticationManager.PrefixLookupMaxCount"=dword:00010000 -
ローカル アプリケーションの構成[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.HighPerformance]"c:\myapp\myapp.exe"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE[\Wow6432Node]\Microsoft\.NETFramework\v4.0.30319\System.Net.AuthenticationManager.PrefixLookupMaxCount] "c:\myapp\myapp.exe"=dword:00010000
グローバル設定は、アプリケーションのローカル設定より優先順位を持ちます。グローバルとローカルのアプリケーション設定を混在させることができます。グローバルまたはローカルのアプリケーションの高パフォーマンスの設定値をDWORD 1に設定されている場合、 PrefixLookupMaxCountを受けませんでした。
問題 6 .NET Framework 4.5、.NET Framework 4.5.1、または.NET Framework 4.5.2 に基づくアプリケーションを実行することを想定しています。アプリケーションは、ネイティブ コードから呼び出され、参照渡しされた COM インターフェイスをマネージ メソッドで例外をスローします。このような場合は、アプリケーションがクラッシュします。 例: VB6 で記述されたアプリケーションは、C# DLL を呼び出します。アプリケーションと DLL がコンパイルされるには、リリース モードでは、C# コードで例外がスローされる場合、アクセス違反が発生してアプリケーションがクラッシュします。 問題 7 XAML ベースのワークフロー プロジェクトでは、XAML を構築するためのタスクで定義されているリモート オブジェクトの既定のリース期間 (5 分) より長い時間がかかる、次のようなエラー メッセージが表示されます。C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Xaml.targets(193,5): エラー XC1000: XC1020: XAML の MSBuild タスクでビルド エラーが発生しました: 'オブジェクト' と cc8d6dcf_823f_4ce0_aaad_fb1d3f85e42b/mzr1is8dfgy6yqtpnhegu6pt_4.rem' が切断されたか、サーバーに存在しません '。
この修正プログラムを適用した後は、 XamlBuildTaskRemotingLeaseLifetimeInMinutesという名前の環境変数を定義することで独自のリース時間 (分単位) を定義できます。
MSBuild のプロジェクト ファイルで環境変数を設定するには、プロジェクト ファイルに次の情報を含める必要があります。<Project ...> <UsingTask TaskName="MySetEnv" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll" > <ParameterGroup> <Name Required="true" /> <Value Required="false" /> </ParameterGroup> <Task> <Code Type="Fragment" Language="cs">System.Environment.SetEnvironmentVariable(Name, Value);</Code> </Task> </UsingTask> ... ... <Target Name="BeforeBuild"> <MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="1440" /> </Target> <Target Name="AfterBuild"> <MySetEnv Name="XamlBuildTaskRemotingLeaseLifetimeInMinutes" Value="" /> </Target> </Project> この例では、タスク名は、 MySetEnvです。タスク名に有効な任意の文字列に設定できます。この例では、1,440 分 (1 日) がプロジェクトのビルド前にリース期間を設定し、建物の後に null を設定します。リース期間を拡張するために必要とする複数のプロジェクトがある場合は、各プロジェクトには、この構成が必要があります。 問題 8 ページで AJAX ポストバックを使用するときもポストバックは、別の URL にリダイレクトされます。HttpModuleのRedirectLocationを入手することができますHttpContext.Items["System.Web.UI.PageRequestManager:AsyncPostBackRedirectLocation]。