概要

.NET 6 のバグにより、ファイルが読み取りバッファ サイズの倍数でない場合、ファイル全体が読み取られた後に例外がスローされます。ファイルは System.IO.IOException:'The parameter is incorrect.' です。

このバグの詳細については、.NET ランタイムの問題 50858 および .NET ランタイムの問題 6285 を参照してください。 

影響を受けるソフトウェア

このバグは、特に .NET 6 アプリケーションをインストゥルメント化するときに、Windows で実行されている .NET MSI APM エージェント(MSI パッケージを介してインストールされるエージェント)に影響を与えることが知られています。

影響

Windows で実行されている .NET MSI APM エージェントで、.NET 6 アプリケーションをインストゥルメント化すると、エージェント設定の読み取りが試みられたときに、次のエラーが表示されます。この例外の影響は、.NET 6 アプリケーションがインストゥルメント化されないことです。

System.IO.IOException: The parameter is incorrect. at 
System.IO.Strategies.BufferedFileStreamStrategy.ReadFromNonSeekableAsync(Memory`1 destination, CancellationToken cancellationToken) at 
System.Threading.Tasks.TaskToApm.End[TResult](IAsyncResult asyncResult) at 
System.IO.Strategies.BufferedFileStreamStrategy.EndRead(IAsyncResult asyncResult) at System.IO.FileStream.EndRead(IAsyncResult asyncResult) at AppDynamics.Agent.Communication.IPC.NamedPipeClient.DeserializeResponse(FileStream strm, Int32 timeout, CommandStatus& status).
CODE

解像度

この問題を解決するには、次の手順を実行します。

オプション 1:この問題は、.NET 6.0.1 で Microsoft によって対処されています。.NET ランタイムプル 61410 を参照してください。.NET 6.0.1 にアップグレードすると、問題が解決します。

オプション 2:システム範囲またはアプリケーション範囲で環境変数を設定します。

  • Name: DOTNET_SYSTEM_IO_USENET5COMPATFILESTREAM
  • Value: 1

オプション 3:.NET マイクロサービス エージェントを使用して、.NET 6 アプリケーションをインストゥルメント化します。

.NET マイクロサービス エージェントは、コーディネータサービスへの IPC 通信に依存しないため、影響を受けません。