Microsoft .NET Framework 3.0

注意 : バージョン間の問題が発生しないように、.NET Framework 3.0 のプレリリース版がインストールされていないコンピュータにインストールすることを強く推奨します。プレリリース版がインストールされている場合には、正しい順序でコンポーネントを削除し、確実にアンインストールする必要があります。このビルドをインストールする前にプレリリース版をアンインストールする場合は、アンインストールの手順に関するページを参照してください。プレリリース版の Framework がインストールされているシステムについての詳細な情報については、このページのセクション 2.8 も参照してください。

目次

1. .NET Framework 3.0 をインストールする場合のシステム要件
2. .NET Framework 3.0 : インストールに関する既知の問題
3. ダウンロード エラー発生時のトラブルシューティング手順
4. Windows Communication Foundation に関する既知の問題
5. Windows Workflow Foundation に関する既知の問題
6. Windows Presentation Foundation に関する既知の問題

 

1. .NET Framework 3.0 をインストールする場合のシステム要件

プロセッサ 最小条件 :
  • 400 MHz Pentium プロセッサ

推奨条件 :

  • 1 GHz Pentium プロセッサ
オペレーティング システム .NET Framework 3.0 は、次のいずれのシステムにもインストールすることができます。
  • Microsoft Windows Server 2003 Service Pack 1 (SP1)
  • Windows XP SP2
  • Windows Vista *

* Windows Vista には、.NET Framework 3.0 が含まれています。個別パッケージのインストールは必要ありません。.NET Framework 3.0 の個別パッケージは、Vista をサポートしません。

RAM 最小条件 :
  • 96 MB

推奨条件 :

  • 256 MB
ハード ディスク 最大 500 MB の空き容量が必要
CD または DVD ドライブ 必要なし
ディスプレイ 最小条件 :
  • 800 x 600、256 色

推奨条件 :

  • 1024 x 768 High Color、32 ビット
マウス 必要なし

インストール先ドライブ

.NET Framework 3.0 のインストーラを起動すると、既定のインストール先はシステム ドライブになります。システム ドライブとは、システムが起動されるドライブのことです。必要な空き領域 (最大 500 MB) がシステム ドライブ上にあることを確認してください。

 

2. .NET Framework 3.0: インストールに関する既知の問題

2.1 .NET Framework 3.0 をダウンロードしてインストールするときに、ダウンロードが失敗する

.NET Framework 3.0 のダウンロードとインストールは、失敗することがあります。

この問題を解決する方法

Web サイトから dotnetfx3setup.exe を再度実行し、もう一度ダウンロードを行ってください。ダウンロード エラーに関するトラブルシューティングの詳細情報を参照するには、ここをクリックしてください。

または

再配布可能形式のインストール パッケージの dotnetfx3.exe (x86) または dotnetfx3_x64.exe (x64) をインストールしてください。この再配布可能形式のパッケージは、.NET Framework 3.0 のダウンロード サイトにあります。

 

2.2 セットアップで再起動が必要になる場合、ウイルス対策アプリケーションが一時フォルダの内容を消去するように構成されているとセットアップでエラーが発生する

セットアップで再起動が必要となる場合、ウイルス対策アプリケーションが起動時に一時フォルダの内容を消去するように構成されていると、必要なセットアップ ファイルが削除されるため、プログラムが見つからないというエラーでセットアップが失敗します。

この問題を解決する方法

.NET Framework 3.0 のセットアップを実行する前に、起動時または再起動時に一時ファイルが消去されないようにウイルス対策アプリケーションの構成を変更します。構成の変更手順については、ウイルス対策アプリケーションのマニュアルを参照してください。

 

2.3 [プログラムの追加と削除] からメンテナンス モードを起動すると、起動に数分間かかりセットアップが失敗したように見えることがある

メンテナンス モードを起動したときにウイルス検出ソフトウェアなどの他のプロセスが実行されていると、それらのプロセスによりセットアップの速度が大幅に遅くなり、セットアップが失敗したように見えることがあります。

この問題を解決する方法

そのまま、しばらくお待ちください。回避策はありません。セットアップは失敗していません。

 

2.4 [プログラムの追加と削除] に Windows Workflow Foundation をアンインストールするオプションが表示されない

.NET Framework 3.0 のインストール時に、"Windows Workflow Foundation をアンインストールしてください" というエラー メッセージが表示されることがありますが、[プログラムの追加と削除] には Windows Workflow Foundation をアンインストールするためのオプションが表示されていません。

この問題を解決する方法

次のサイトから、アンインストール ツールを実行してください :http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146

 

2.5 .NET Framework 3.0 をインストールすると、MSXML6 のローカライズ版が上書きされることがある

Windows XP SP2 と Windows 2003 SP1 では、MSXML6 のローカライズ版がインストールされている場合、その環境に .NET Framework 3.0 をインストールすると、MXSML6 のローカライズ版が英語版に置き換えられます。

この問題を解決する方法

.NET Framework 3.0 をインストールしてから、MSXML6 のローカライズ版を再インストールしてください。

 

2.6 .NET Framework 3.0 パッケージを Vista にインストールすると、インストール エラーが発生する

Windows Vista には、.NET Framework 3.0 が含まれています。個別パッケージのインストールは必要ありません。.NET Framework 3.0 の個別パッケージは、Vista をサポートしません。 

 

2.7 プレリリース版の .NET Framework 3.0 (旧称 : WinFX 3.0) からのアップグレード時に発生する可能性のある問題

このセクションでは、プレリリース (CTP およびベータ) 版の .NET Framework 3.0 を以前にインストールしたことがあり、旧版を削除して RTM 版にアップグレードする場合の問題について説明します。

アンインストール ツールを実行する
.NET Framework 3.0 のアンインストール ツールは、http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146 で入手できます。このツールによりアンインストール時の問題の多くを解決できるので、アンインストールまたは再インストール時の問題に対処するには、最初にこれを実行することをお勧めします。このツールの正しい使い方は、ダウンロード ページで説明されています。

ツールを実行できないか、問題を解決できない場合は、その他の解決方法を試す前に、以下の「既知の問題と回避策」のセクションを確認してください。

注意 : インストール時にこれらの問題が発生するのは、システムに RTM バージョンをインストールする前に、初期のプレリリース版の .NET Framework 3.0 をインストールしていた場合だけです。これらの問題の原因は、最近の .NET Framework 3.0 プレリリース版では解決済みです。


既知の問題と回避策

2.7.1 "Microsoft Digital Identity Service" (idsvc) が、アンインストール時に検出されない

アンインストール時に、一部のプレリリース版の .NET Framework 3.0 では、作成されたサービスのうちのいくつかが正しく検出できませんでした。このようなサービスがシステムに残っていると、.NET Framework 3.0 はインストールできません。インストールは失敗し、次のようなエラーが表示されます。
ERROR_INSTALL_FAILURE 1603 インストール中に致命的なエラーが発生しました
また、ログ ファイル %temp%\dd_wcf_retCA*.txt のいずれかに、次のメッセージが記録されます。

ServiceModelReg [15:48:08:041]:Installing: Microsoft Digital Identity Service (idsvc)
ServiceModelReg [15:48:08:073]:エラー :System.ComponentModel.Win32Exception:その名前は、サービス名またはサービス表示名として既に使われています
 

この問題を解決する方法

次のサイトから、アンインストール ツールを実行してください :http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146

問題が解決できない場合 :
コマンド プロンプトを開きます。

  1. [スタート] ボタンをクリックします。
  2. [すべてのプログラム] をクリックします。
  3. [アクセサリ] をクリックします。
  4. [コマンド プロンプト] をクリックします。
  5. コマンド プロンプトで、次のように入力します :
    sc delete "InfoCard Service"
  6. コンピュータを再起動します。
  7. .NET Framework 3.0 のインストールをもう一度実行します。

2.7.2 一部の WCF Perf Counter レジストリ キーが、一部のプレリリース版の .NET Framework 3.0 のアンインストール時に検出されない

一部のプレリリース版の .NET Framework 3.0 では、アンインストール時に削除されない perf counter レジストリ キーがありました。これらのキーが残っていると、.NET Framework 3.0 はインストールできません。インストールは失敗し、次のようなエラーが表示されます。
        "ERROR_INSTALL_FAILURE 1603 インストール中に致命的なエラーが発生しました"
以下のキーが、アンインストール後もレジストリに存在しています。
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance  

この問題を解決する方法

次のサイトから、アンインストール ツールを実行してください :http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146

問題が解決できない場合 :
1. 再起動してみます。問題により、パフォーマンス カウンタが不安定になることがよくあります。再起動でこれらの問題が解決することがあり、これはレジストリを手作業で編集するより安全です。
2. これでも問題が解決できない場合 :
    a. 次のレジストリ キーを確認します。値が空か、値に "Wbem*" が含まれている次のいずれかのキーの親レジストリ キーを削除します。
        • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
        • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
        • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
        • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
        • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance
    b. たとえば、次のキーが空の場合、
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
        次のキーを削除する必要があります。
        HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0”
 

2.7.3 バージョン "2.0.0.0" の .NET Framework 3.0 アセンブリを参照する古い machine.config エントリがあるため、インストールできない

一部のプレリリース版の .NET Framework 3.0 では、アンインストール時に削除されない machine.config エントリがありました。machine.config ファイルに "System.ServiceModel.dll" のバージョン 2.0.0.0 を参照するエントリがあると、.NET Framework 3.0 をインストールできません。インストールは失敗し、次のようなエラーが表示されます。
    "ERROR_INSTALL_FAILURE 1603 インストール中に致命的なエラーが発生しました"
さらに、
1. ServiceModelReg.exe の実行の問題を参照するアプリケーション イベント ログに、エラー イベントが記録されます。
2. インストールを実行しているユーザーの %temp% ディレクトリに格納されている "dd_wcf_retCA*" という名称のセットアップ ログ ファイルに、ServiceModelReg.exe の実行に問題が発生していることを示すエントリが記録されます。
3. イベント ログ エントリまたはセットアップ ログ エントリに、次のような例外が発生します (タイム スタンプは異なります)。
ServiceModelReg [16:21:10:656]:エラー :System.IO.FileLoadException:ファイルまたはアセンブリ 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。(HRESULT:0x80131040 からの例外)  

この問題を解決する方法

手作業で古い machine.config エントリを削除します。
1. コマンド ウィンドウから「notepad %windir%\microsoft.net\framework\v2.0.50727\config\machine.config」を実行します。
2. System.ServiceModel.dll を参照する XML ノードと子ノードがあれば、それを削除します。
3. 使用しているコンピュータが 64 ビット版であり、次の config ファイルがある場合、

"%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config"

ファイルを編集して、System.ServiceModel.dll を参照する XML ノードと子ノードがあれば、それを削除します。
 

2.7.4 RC1 より古い版の WCF がインストールされている場合、WCF サービスを Web ホストできないことがある

IIS がインストールされた状態で古いバージョンの .NET Framework 3.0 をインストールした場合、RTM バージョンの .NET Framework 3.0 にアップグレードしようとすると、.svc ファイルを使用して IIS にホストされている WCF サービスにアクセスできません。Windows Server 2003 が実行されているコンピュータで、ブラウザから拡張子 .svc にアクセスすると、"404: ページが見つかりません" というエラーが返されます。Windows XP が実行されているコンピュータでは、.svc コンテンツはプレーン テキストとして表示されることがあります。

これは、以前のリリースでの WCF スクリプト マップの登録に関する問題が原因です。  

この問題を解決する方法

この問題を回避するには、次の 3 つの方法があります。
1. サポート対象外のツールの CleanIISScriptMaps.exe を http://wcf.netfx3.com/files/folders/product_team/entry5648.aspx からダウンロードします。このツールを引数を指定せずにコマンド コンソールから実行します。
2. IIS をアンインストールして再インストールするか、Web サイトを作成し直します。
a. IIS をアンインストールし、再インストールして IIS メタベースを更新します。次に、WCF インストール ツールを手作業で実行して、WCF スクリプト マップを登録し直します。

"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" /r /y
b. Windows 2003 Server を実行している場合、"既定の Web サイト" を削除して作成し直すと、この問題を解決できることがあります。
3. 一時的な回避策として、.svc を手作業でインストールします。
a. 次のコマンドを実行して、.svc マッピングを手作業でインストールできます。ただし、これにより既存のサイトに対する IIS メタベースが更新されます。
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" /s:W3SVC
 

2.7.5 IIS メタベースの破損により .NET Framework 3.0 をインストールできない

IIS がインストールされた状態で以前のバージョンの .NET Framework 3.0 をインストールした場合、IIS メタベースが破損した可能性があります。これが原因で、.NET Framework 3.0 をインストールできないことがあります。
この問題は次の条件で特定できます。
1. インストールが失敗し、次のようなエラーが表示される。
"ERROR_INSTALL_FAILURE 1603 インストール中に致命的なエラーが発生しました"
2. アプリケーション イベント ログに、WCF スクリプト マップの登録失敗に関するエラー イベントが記録される。イベントのソースは、System.ServiceModel.Install.dll 3.0.0.0 です。
3. %temp% ディレクトリのセットアップ ログにも、WCF スクリプト マップの登録失敗が記録される。
4. イベント ログかセットアップ ログに、次の例外スタック トレースが記録される。
System.ApplicationException:ServiceModelReg.exe によって、IIS メタベースが破損しているらしいことが検出されました。このため、ServiceModel IIS スクリプト マップが登録できません。IIS メタベースの破損を修正してください。ServiceModel WebHost 機能を使わない場合は、IISAdmin サービスを無効にし、ServiceModel を登録してください。  

この問題を解決する方法

1. IIS をアンインストールします。
2. IIS を再インストールします。
3. .NET Framework 3.0 のセットアップを再実行します。

 

3. ダウンロード エラー発生時のトラブルシューティング手順

3.1 Background Intelligent Transfer Service (BITS) が無効

このエラーは、BITS サービスが無効になっている場合、存在しない場合、サービス アプリケーションから削除された場合、ダウンロード中に停止された場合、BITS が依存する任意のサービスにエラーが発生したり、そのサービスが削除された場合に発生します。この問題に対するエラー メッセージは次のとおりです。"インストールを開始する前に、BITS サービスが有効にされている必要があります。BITS サービスを有効にして、セットアップを再実行してください。"

この問題を解決する方法

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスで、「services.msc」と入力し、[OK] をクリックします。
  3. サービスの一覧で、[Background Intelligent Transfer Service] を右クリックし、[プロパティ] をクリックします。
    注意 : [Background Intelligent Transfer Service] が一覧に表示されない場合、サービスはコンピュータ上にインストールされていません。http://www.microsoft.com/downloads/details.aspx?FamilyId=B93356B1-BA43-480F-983D-EB19368F9047&displaylang=ja から BITS をダウンロードして、インストールできます。
  4. [スタートアップの種類] ボックスの一覧で [手動] をクリックし、[OK] をクリックします。

上記の手順で問題が解決しない場合、BITS が依存関係にあるサービスを有効にする必要があります。

依存関係にあるサービスを有効にする方法

  1. 上記の手順の 1 ~ 3 を実行します。
  2. [Background Intelligent Transfer Service のプロパティ] ダイアログ ボックスで、[依存関係] タブをクリックします。
  3. [このサービスが依存するシステム コンポーネント] の下に列挙された各サービスに対して、上記の手順の 3 と 4 を実行してサービスを有効にします。

 

3.2 構成エラー

このエラーは BITS インターフェイスが登録されていない場合、またはレジストリ設定が壊れている場合に発生します。

この問題を解決する方法

http://www.microsoft.com/downloads/details.aspx?FamilyId=B93356B1-BA43-480F-983D-EB19368F9047&displaylang=ja から BITS 2.0 にアップグレードします。

または

コマンド プロンプトで、次のように bitsadmin ツールを実行して BITS サービスを修復します。
Bitsadmin /util /repairservice /force

Bitsadmin ツールは http://www.microsoft.com/downloads/details.aspx?amp;displaylang=ja&familyid=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=ja からダウンロードできます。

 

3.3 ネットワーク エラー

このエラーは、次の 1 つ以上の理由によって発生する可能性があります。

この問題を解決する方法

プロキシ サーバーに対して適切な設定を行い、コンピュータがプロキシ サーバーを正しく解決できるようにします。

または

BITS 2.0 にアップグレードします。BITS 2.0 は http://www.microsoft.com/downloads/details.aspx?amp;displaylang=ja&familyid=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=ja からダウンロードできます。

注意 : これらのエラーを解決するには、セットアップを終了し、ネットワークに接続されていることを確認した後で、セットアップを再度実行してください。

 

3.4 ディスク エラー

このエラーは、BITS サービスがファイルの作成やファイルへの書き込みに失敗したときに発生します。別のプログラム (chkdsk.exe など) が実行中でディスクがロックされている場合、BITS はファイルの書き込みに失敗します。

この問題を解決する方法

ディスクをロックする可能性のある他のプログラム (chkdsk.exe など) が実行されていないことを確認した後に、ダウンロードを再試行します。

または

コンピュータを再起動してセットアップを再実行します。コンピュータがインターネットに接続されていることを確認してください。

 

3.5 プロキシ エラー

BITS サービスが、次のいずれかのプロキシ関連のエラーのために失敗しました。

この問題を解決する方法

プロキシ サーバーの認証に対して正しい資格情報を提示して、セットアップを再起動します。

または

プロキシ サーバーを HTTP 1.1 対応にアップグレードして、NTLM のように暗黙の資格情報がプロキシでサポートされるようにします。ネットワーク管理者に問い合わせることが必要な場合があります。

または

Internet Explorer のプロキシ設定を変更して、プロキシを使用しないようにします。

プロキシ サーバーを使用しないようにする方法

  1. Internet Explorer で [ツール] をクリックし、[インターネット オプション] をクリックします。
  2. [接続] タブをクリックし、[LAN の設定] をクリックします。
  3. [プロキシ サーバー] の下の [LAN にプロキシ サーバーを使用する (これらの設定はダイヤルアップまたは VPN 接続には適用されません)] チェック ボックスをオフにし、[OK] をクリックします。
  4. もう一度 [OK] をクリックします。

プロキシ サーバーの設定に関するサポートが必要な場合は、ネットワーク管理者に相談してください。

 

3.6 その他のエラー

BITS サービスは次の場合には実行されません。

この問題を解決する方法

回避策はありません。上記の条件での使用がサポートされていません。

 

4. Windows Communication Foundation (WCF) に関する既知の問題

4.1 WS-AtomicTransaction と COM+ Integration 機能を使用する場合に、Windows XP および Windows Server 2003 の Windows 修正プログラムが必要になる
WCF WS-AtomicTransaction サポートと COM+ Integration 機能を Windows XP および Windows Server 2003 で使用するには、Windows の修正プログラム (QFE) が必要です。修正プログラムのパッケージは、http://go.microsoft.com/fwlink/?linkid=46976 からインストールできます。

4.2 SvcUtil.exe ツールを使用して生成された C++ のマネージ コードがコンパイルできないことがある
SvcUtil.exe ツールを使用して、Web サービス プロキシとデータ型のコードをメタデータから生成することができます。ただし、Visual Studio 2005 と .NET Framework 2.0 SDK の C++ コード プロバイダには、既知の問題がいくつかあります。そのため、コンパイルできない C++ のマネージ コードをツールが生成してしまうことがあります。C++ コード プロバイダに関するこれらの問題は、今後リリースする Visual Studio 2005 で解決する予定です。

4.3 SvcUtil.exe におけるコード生成言語サポート
マネージ コード プロバイダのある言語であれば、Svcutil.exe により、Web サービス プロキシとデータ型のコードをメタデータから生成することができます。SvcUtil は、C#、VB、C++ の各マネージ コード プロバイダでテストされています。その他のコード プロバイダではテストされていないため、コンパイルできないコードが生成されたり、コンパイルできても使用できないコードが生成される場合があります。

4.4 QueueTransferProtocol が [Srmp] または [SecureSrmp] に設定されていると、Web ホストされた待機サービスへのメッセージの送信に失敗する
Web ホストされたサービスが使用するキューには、該当する WFC サービスにマッピングするために名前に".SVC" が含まれています。WCF アクティベーション機能をインストールしてから MSMQ HTTP サポートをインストールすると、MSMQ HTTP のセットアップに関する問題が原因で、.SVC ハンドラ マッピングが MSMQ vdir にコピーされます。SRMP メッセージをこのようなキューに送信すると、結果として失敗します。

この問題を回避するには、次の 2 つの方法があります。

1. MSMQ HTTP サポートをインストールしてから、WCF アクティベーション機能をインストールします。

または

1. IIS 管理コンソールを使用して、.SVC ハンドラ マッピングを MSMQ vdir から削除します。
2. 次に、次のコマンドを使用して、サイトの .SVC マッピングを更新します。
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\SMConfigInstaller.exe" /c:install /f:http.

注意 : 64 ビットのコンピュータでは、Framework64 パスを使用してください。


4.5 待機チャネルがすべてを網羅したエンドツーエンドのトレースを生成しない
MSMQ と WCF 待機チャネルとの間のメッセージをエンドツーエンドでトレースする機能は、現時点ではサポートされていません。これは既知の問題です。

この問題を回避するには、WCF と MSMQ でトレースされるメッセージを MSMQ メッセージ ID を使用して手動で関連付けます。この ID は、WCF と MSMQ の両方でトレースされます。

4.6 NetMsmqBinding と MsmqIntegrationBinding で WMI を使用する場合の既知の問題
WMI を使用して MsmqTransportBindingElement と MsmqIntegrationBindingElement のプロパティを調べると、ReceiveErrorHandling と QueueTransferProtocol の列挙値が、実際の値ではなく数として表示されます。これは既知の問題です。この問題を回避するには、バインディングに設定された実際の値の設定を調べます。

WMI を使用して MsmqTransportBindingElement を調べると、MsmqTransportSecurity と TransactedReceiveEnabled のプロパティが欠けています。これは既知の問題です。

WMI を使用して MsmqIntegrationTransportBindingElement を調べると、MsmqTransportSecurity、TargetSerializationTypes、および TransactedReceiveEnabled のプロパティが欠けています。これは既知の問題です。

4.7 メッセージ削除エラーが Windows Vista ではメッセージの拒否として記録される
MSMQ Version 4 (Windows Vista) の WCF 待機チャネルで NetMsmqBinding か MsmqIntegrationBinding を使用すると、削除メッセージのトレースが、拒否されたメッセージとして誤って記録されます。これは既知の問題です。

4.8 クライアント認証にアラビア語の証明書を使用すると、Windows イベント ビューアにクライアント ID が正しく表示されない
アラビア語版の Windows クライアントでクライアント認証にローカルマシン証明書 [CN=شقشلهش,] を使用すると、Windows イベント ビューアの既知の問題が原因で、イベント ログの監査エントリに次のクライアント ID が正しく表示されません。

ClientIdentity:CN=شقشلهش; 14FDBABD77EA825C391CEC4F830859F72B56009F

上の例では、文字列 "14" は証明書の拇印の一部ですが、証明書のサブジェクト名の前に表示されています。

4.9 IIS メタベースの破損が原因で .NET Framework 3.0 をインストールできないことがある
IIS がインストールされた状態で以前のバージョンの .NET Framework 3.0 をインストールした場合、IIS メタベースの破損が原因で .NET Framework 3.0 をインストールできないことがあります。
この問題は次の条件で特定できます。
1. 次に示すエラーが表示され、インストールが失敗する。
"ERROR_INSTALL_FAILURE 1603 インストール中に致命的なエラーが発生しました"
2. アプリケーション イベント ログに、WCF スクリプト マップの登録失敗に関するエラー イベントが記録される。イベントのソースは、System.ServiceModel.Install.dll 3.0.0.0 です。
3. %temp% ディレクトリのセットアップ ログにも、WCF スクリプト マップの登録失敗が記録される。
4. イベントログかセットアップ ログに、次のエラー メッセージが記録される。
System.ApplicationException: ServiceModelReg.exe によって、IIS メタベースが破損しているらしいことが検出されました。このため、ServiceModel IIS スクリプト マップが登録できません。IIS メタベースの破損を修正してください。ServiceModel WebHost 機能を使わない場合は、IISAdmin サービスを無効にし、ServiceModel を登録してください。
この問題を解決するには :
1. IIS をアンインストールします。
2. IIS を再インストールします。
3. .NET Framework 3.0 のセットアップを再実行します。

4.10 同一ポートで TCP サービスと TCP MEX を実行すると、例外が発生する
ポート共有を有効にした状態で、TCP サービスと TCP MEX エンドポイントが同じポートを使用するように設定すると、サービスの起動時に AddressAlreadyInUse 例外が発生します。

この問題を回避するには、2 つの方法があります。
1. 異なるポートを使用するように TCP サービスと TCP MEX エンドポイントの設定を変更する。
2. TCP MEX エンドポイントの TcpTransportBindingElement のポート共有を有効にする。この処理を示すコードは次のとおりです。
ServiceMetadataBehavior mexBehavior = new ServiceMetadataBehavior();
host.Description.Behaviors.Add(mexBehavior);
Binding mexBinding = MetadataExchangeBindings.CreateMexTcpBinding();
CustomBinding mexBinding2 = new CustomBinding(mexBinding);
mexBinding2.Elements.Find<TcpTransportBindingElement>().PortSharingEnabled = true;
host.AddServiceEndpoint(typeof(IMetadataExchange), mexBinding2, mexAddress);

4.11 64 KB を超えるエラー メッセージが原因で ProtocolException が発生する
MaxBufferSize が Int.MaxValue – 1,024 バイト (2,147,482,623 バイト) 以上の場合、64 KB を超えるエラー メッセージを送信すると、クライアントは FaultException ではなく ProtocolException を受信します。バッファされた転送の場合、MaxBufferSize は MaxReceivedMessageSize と同じになります。この影響を受けるのは、HTTP(S) トランスポートを使用するサービスだけです。

この問題を回避するには、MaxBufferSize (MaxReceivedMessageSize) を Int.MaxValue – 1,025 バイト (2,147,482,622 バイト) 以下に設定します。または、HttpWebRequest.DefaultMaximumErrorResponseLength を適切と思われる制限値に直接設定することもできます。DefaultMaximumErrorResponseLength を設定すると、同じアプリケーション ドメインのすべてのチャネルが影響を受けます。

4.12 同じコントラクトに EncryptBeforeSign と XmlSerializerFormatAttribute を使用できない
コントラクトに XmlSerializerFormatAttribute が使用されている場合、EncryptBeforeSign 保護命令のあるメッセージ セキュリティは正常に機能しません。両方とも使用されている場合、WCF は解読後に無効なボディ コンテンツを持つメッセージを作成します。つまり、最初のボディ要素の前に、追加の <?xml ..> 処理命令が生成されます。

この問題を回避するには、同じコントラクトに EncryptBeforeSign と XmlSerializerFormatAttribute を使用しないようにします。

4.13 バージョンの異なる WS-Addressing を使用する WS-ReliableMessaging チャネルをホストできない
AppDomain は、バージョンの異なる WS-Addressing を使用する WS-ReliableMessaging チャネルをホストできません。このようなシナリオでは、最初のアクティブ チャネルが、それ以降のすべてのプロトコル メッセージで、WS-Addressing Action ヘッダのバージョンを独断的に決定してしまいます。この状況は、これらのメッセージが、別のバージョンのアドレッシング プロトコルを使用するように設定されたチャネルから送信された場合でも変わりません。

単一のアプリケーションまたはサービスが、別のバージョンの WS-Addressing を使用する WS-ReliableMessaging チャネルを作成するようにする場合は、AppDomain をそれぞれ個別に使用します。WCF サービスが Web ホストされている場合には、2 つの仮想ディレクトリ (1 つは WS-Addressing 1.0 エンドポイントを備えたサービスをホストするディレクトリ、もう 1 つは WS-Addressing August 2004 エンドポイントを備えたサービスをホストするディレクトリ) を使用する必要があります。

5. Windows Workflow Foundation に関する既知の問題

5.1 Internet Information Services (IIS) 7.0 統合モードにおけるワークフロー Web サービスのホスティング

Workflow Project System によって生成された web.config ファイルには、IIS 6.0 ホスティングとの互換性があります。ただし、Windows Vista に付属する IIS 7.0 では、次の 2 つのモードによる ASP.NET パイプラインの実行がサポートされています。ISAPI モード (IIS 6.0 対応モード) および統合モードの 2 つです。新しい統合モードを利用するには、web.config ファイルを以下のように変更する必要があります。
<system.webServer>
<modules>
<add name="WorkflowHost" type="System.Workflow.Runtime.Hosting.WorkflowWebHostingModule, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="runtimeVersionv2.0" />
</modules>
</system.webServer>

5.2 ExternalDataExchangeService は、複数のワークフロー ランタイムのインスタンス間で使用できません

複数の WorkflowRuntime インスタンスに対して、ExternalDataExchangeService サービスを追加することはできません。新しい WorkflowRuntime インスタンスが作成されるたびに、新しい ExternalDataExchangeService サービスが作成され、この ExternalDataExchangeService サービスに対して任意のローカル通信サービスが改めて追加されます。

5.3 イベント ハンドラとして追加された静的メソッドが、正しくシリアル化されない

静的メソッドをイベント ハンドラとして追加した場合、ClassName.Method ではなく this.Method としてシリアル化されます。

5.4 CompensateActivity の TargetActivityName がカスタム複合アクティビティの場合、補正が失敗する

カスタム複合アクティビティを作成し、この複合アクティビティに ICompensatable と CompensateActivity アクティビティ (複合アクティビティは補正するが、子アクティビティの明示的な補正は行わない) を実装する子アクティビティが含まれている場合、このカスタム アクティビティがワークフロー内に配置されると、補正が失敗して例外が発生します。

この問題を回避するには、CompensatableSequenceActivity アクティビティ内にあるカスタム アクティビティのすべての子アクティビティをカプセル化し、この CompensatableSequenceActivity アクティビティに対して補正を実装する必要があります。

 

6. Windows Workflow Foundation に関する既知の問題

6.1 複数プロジェクトとプロジェクト依存関係のあるソリューションの Windows Presentation Foundation ビルド システムに関する既知の問題

1 つのソリューションに複数のプロジェクトがある場合、それらのプロジェクト ディレクトリは、互いにピアでなければなりません。1 つのプロジェクトのルートが、別のプロジェクトのディレクトリの下になるようにプロジェクト構造を変更すると、予期しないマークアップ コンパイル エラーが、Rebuild コンパイル時に表示されます。これは、依存しているプロジェクトの 1 つから参照された DLL の型が見つからなかった、というエラーです。

回避策は次のとおりです。

  1. ソリューションの複数のプロジェクトのディレクトリ階層を変更して、個々のプロジェクト ディレクトリが、互いにピアになるようにします。または、
  2. この問題が発生したら、いったん Clean して、Build か Rebuild を行います。