8

C# で記述された Windows サービスを Windows Server 2012 で実行しています。このサービスは、ローカル マシンに対する権限と、Isilon SAN 上の共有ネットワーク リソースに対する NTFS 権限を持つドメイン ユーザーとして実行されています。次の形式でこのユーザーとしてログオンすると、Windows エクスプローラーで共有ファイルとディレクトリにアクセスできます。

\\isilon\path\to\dir\

ただし、

System.IO.Directory.Exists()

常に false を返します。最初はこれだと思った: http://support.microsoft.com/kb/827421 ただし、回避策を実装すると、使用できることが示唆されます

System.IO.Directory.GetDirectories()

代わりにディレクトリにアクセスするだけです(最初に存在するかどうかを確認せずに)。これはただ投げます

System.IO.IOException: An unexpected network error occurred.

この同じサービス コードは、同じネットワーク上の別のサーバー (Windows 2008) で実行されている場合に機能します。

本当におかしいのは、サーバーを再起動すると、最初はファイル システムの呼び出しが成功することです。その後、しばらくすると、またはそのコンピューターから同じファイル パスにアクセスした後、プログラムによる呼び出しが失敗し始め、自発的に再び成功することはありません。サーバーを再起動すると、非常に短い間、問題が修正されます。

Windowsサーバーインスタンスを再起動する必要はほとんどないはずなので、私は完全に困惑しています. ファイル共有のアクセス許可やアクセシビリティに何が影響しているのかわかりません。Windows Server 2012 での SMB 3.0 の新しい実装に関連している可能性がありますか?

編集: OK、私は頭がおかしいわけではないことがわかりました。OneFS (Isilon SAN で実行されているファイル システム) のバージョンは、Windows Server 2012 と明示的に互換性がありませんでした。ただし、SMB と互換性があると主張していました。OneFS バージョン 6.5.5.14 から 6.5.5.20 に更新すると、問題がすぐに修正され、それ以来安定しています。

4

0 に答える 0