System.IO.IOException
どんなエラー?
IO(input/outputの略)に失敗した状態を指す。.netでは、ストリーム、ファイル(ディレクトリも)の読み書きに失敗したときに発生する。外部からの入出力も関係してくるので、マウントが外れていたり通信が失われていたりして発生するケースもある。
対応方法
入出力の元がどのような状態にあるのかを確認する。外部サーバーに対して入出力しているのか、サーバー内のデバイスに対して入出力しようとしているのか、線引きを行うことが必要。記憶装置がサーバー内の場合は、経路の状態→ディスクの状態→クラスター(セクター含む)の状態、とブレイクダウンして調べる必要が出てくる。外部のサーバーの場合は、マウントの状態→経路の状態→外部サーバーのディスクの状態→クラスターの状態とこちらもブレイクダウンしていく。
サーバー屋さんに言わせると、装置間をつなぐ線(コード類、接点)が一か所増えるたびにハードトラブル発生のリスクが倍増するとのこと。基盤に直つなぎの状態が望ましいと言っていた。
外部の記憶媒体に依存する機能実装の際は、初手として「存在チェック」を入れておくのが定石のようだ。
※ディスクとして例を出していますが、記憶媒体として考えてください。当然、物理メモリも含まれています。
コメントを残す