この記事は、別のユーザーがリモート デスクトップ セッションからログオフした場合にアプリケーションがクラッシュしたり応答しなくなる問題を解決するのに役立ちます。
元の KB 番号: 2536487
現象
マップされたドライブからアプリケーションを実行すると、別のユーザーがログオフしたときに、ユーザー (または複数のユーザー) に対してアプリケーションが応答しなくなるかクラッシュします。 この問題は、Windows Server 2012 R2、Windows Server 2012、Windows Server 2008 R2 Service Pack 1 (SP1)、および Windows Server 2008 で発生します。 たとえば、この問題は次のシナリオで発生する可能性があります。
1 つのサーバーはファイル サーバーで、もう 1 つはリモート セッション ホスト サーバー (ターミナル サーバー) です。
ファイル サーバー上のフォルダーは、RDS サーバーに接続しているリモート ユーザーが使用するためにマップされます。
マップされた共有上のアプリケーションは、複数のユーザーによって起動されます。
1 人のユーザーがログオフします。 これにより、アプリケーションの他のユーザーがアプリケーションのクラッシュまたは応答不能を経験します。 OS のバージョンに応じて、この問題は、次のように、アプリケーションの最初または最後のユーザーがログオフしたときに発生します。
- Windows Server 2012 R2、Windows Server 2012、および Windows Server 2008 では、ログオンした最初のユーザーがログオフしたときにこの問題が発生します。
- Windows Server 2008 R2 SP1 では、この問題は、ログオンした最後のユーザーがログオフしたときに発生します。
Note
Windows Server 2008 R2 SP1 では、この動作は、 hotfix 2559767をインストールした後、Windows Server 2012 R2、Windows Server 2012、および Windows Server 2008 の動作と同じになります。
原因
この問題は、リダイレクターが問題のバイナリのファイル制御ブロック (FCB) を処理する方法が原因で発生します。
Windows Server 2012 R2、Windows Server 2012、および Windows Server 2008 では、FCB はファイルを開いた最初のユーザーによって所有され、この FCB は後続のユーザーによって使用されます。 最初のユーザーがログオフすると、FCB は孤立します。 これにより、アプリケーションがクラッシュしたり、後続の使用で応答しなくなります。
Windows Server 2008 R2 では、FCB はファイルを開いた最後のユーザーによって所有され、以前のユーザーは最後のユーザーがログオフしたときに問題が発生します。
技術的には、FCB は特定のユーザーによって所有されていません。 ファイルを表す共有構造にすぎません。 FCB は、ファイルの最初のハンドルが開かれたときに作成され、ファイルの最後のハンドルが閉じられると破棄されます。 そのため、ユーザーには関連付けされません。
孤立したエンティティは、ログオフするユーザーに属するファイル オブジェクトです。 そのファイル オブジェクトがファイル システム キャッシュまたはマップされたセクションをバックアップすると、これらの I/O エラーが発生します。
解決方法
この問題を解決するには、 Windows Server 2016 にアップグレードします。 この問題は、このバージョンの Windows Server で修正されています。
回避策
この問題を回避するには、以下のいずれかの方法を使用します。
- マップされたフォルダーから共有アプリケーションを実行しないでください。 代わりに、共有アプリケーションをターミナル サーバーにローカルにインストールします。
- リモート バイナリ共有が必要な場合は、マップされたフォルダーの代わりに WebDAV 共有を使用します。
- ネットワークから実行される Swap リンカー設定を使用して、アプリケーションをコンパイルします。
- この設定については、以下で説明します。 https://msdn.microsoft.com/library/chzz5ts6(v=vs.71).aspx
- アプリケーションがマネージド アプリの場合は、 Shadow コピー機能を使用。
Note
バイナリをリモートで実行することはお勧めしません。 このような状況では、最初の回避策を使用することをお勧めします。