この記事は、WPF ベースのプログラムがテキストを処理するときに、Windows Presentation Foundation (WPF) ベースのプログラムで FileFormatException または ArgumentOutOfRangeException エラー メッセージが表示される問題を解決するのに役立ちます。
適用対象: Windows Presentation Foundation
元の KB 番号: 937135
症状
Microsoft .NET Framework 3.0 で WPF ベースのアプリケーションを実行すると、FileFormatException エラーまたは ArgumentOutofRangeException エラーが発生することがあります。 エラーは、WPF ベースのアプリケーションがテキストの処理を開始したときに発生します。 たとえば、次のような FileFormatException エラー メッセージが表示される場合があります。
file:///filepath/file_name ファイルは、想定されるファイル形式の仕様に準拠していません。
このエラー メッセージでは、通常、 file_name はフォントのファイル名です。 さらに、アプリケーションは最大 100% の CPU 時間を消費します。
タスク マネージャーやその他のツールを見ると、PresentationFontCache.exeは使用可能なプロセッサ時間の 50% 以上を消費します。
原因
この問題は、ビデオ ドライバーがメモリに格納されているフォント キャッシュ内のデータを上書きする場合に発生します。
解決策
この問題を解決するには、次の手順に従ってください。
コンピューターで実行されているすべての WPF ベースのアプリケーションを終了します。
Windows Presentation Foundation Font Cache 3.0.0.0 サービスを停止します。 Windows Presentation Foundation Font Cache 3.0.0.0 サービスを停止するには、次のいずれかの方法を使用します。
方法 1: Microsoft 管理コンソールを使用する
- [スタート] をクリックし、[実行] をクリックします。「Services.msc」と入力し、[OK] をクリックします。
- Windows Presentation Foundation Font Cache 3.0.0.0 を右クリックし、Stop をクリックします。
方法 2: コマンド プロンプトを使用する
- [スタート]をクリックし、[実行]をクリックして、「cmd」と入力し、[OK]をクリックします。
- コマンド プロンプトで、 net stop "Windows Presentation Foundation Font Cache 3.0.0.0" と入力し、 ENTER キーを押します。
古いFontcache3.0.0.0.dat ファイルを削除します。
注
既定では、Fontcache3.0.0.0.dat ファイルは Windows Vista の
%windir%\ServiceProfiles\LocalService\AppData\Local
フォルダーにあります。 既定では、Fontcache3.0.0.0.dat ファイルは Windows XP と以前のバージョンの Windows の%systemdrive%\Documents and Settings\LocalService\Local Settings\Application Data
フォルダーにあります。ビデオ カード ドライバーを更新します。 これを行うには、次のいずれかの方法を使用します。
方法 1: Windows Update カタログを使用する
ビデオ カード ドライバーを更新するには、Windows Update カタログの更新プログラムを確認します。 Windows Update カタログからドライバーをダウンロードする方法の詳細については、「 Windows Update カタログからドライバーと修正プログラムを含む更新プログラムをダウンロードする方法を参照してください。
方法 2: 最新のビデオカードドライバをダウンロードしてインストールする
最新のビデオ カード ドライバーをダウンロードしてインストールするには、コンピューターまたはビデオ ハードウェアの製造元にお問い合わせください。
詳細情報
ビデオ カード ドライバーがメモリに格納されているフォント キャッシュ内のデータを上書きすると、破損したデータがデータ ファイルとしてハード ディスクに保存される可能性があります。 そのため、別の WPF ベースのアプリケーションが破損したデータ ファイルを読み取ろうとしたときに、「 Symptoms 」セクションに記載されている問題が発生する可能性があります。
ビデオ カード ドライバーを更新し、Fontcache3.0.0.0.dat ファイルを削除すると、新しいコンピューター構成に基づいて新しいフォント キャッシュ データ ファイルが作成されます。 この新しいフォント キャッシュ データ ファイルは、Windows Presentation Foundation Font Cache 3.0.0.0 サービスが停止したときに作成されます。 通常、新しいフォント キャッシュ データ ファイルは、コンピューターのシャットダウン時または再起動時に作成されます。