从IsolatedStorageFileStream构造函数抛出的IsolatedStorage_Operation_ISFS错误是什么意思?

her*_*son 4 silverlight

我有一个Silverlight 4应用程序(插件... http://audioorchard.com ...结束插件)偶尔会在IsolatedStorageFileStream构造函数中抛出异常.

System.IO.IsolatedStorage.IsolatedStorageException:[IsolatedStorage_Operation_ISFS]参数:调试资源字符串不可用.通常,密钥和参数提供了足够的信息来诊断问题.请参阅System.IO.IsolatedStorage.IsolatedStorageFileStream..ctor上的http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.50524.0&File=mscorlib.dll&Key=IsolatedStorage_Operation_ISFS (字符串路径,FileMode模式,FileAccess访问,FileShare分享,Int32 bufferSize,IsolatedStorageFile isf)在AudioOrchard.Client.Utility.DiskManager.CreateNewFile(String fileName,Boolean wasDiskSpaceRequested)at ...(在这里输入不是SL运行时代码)

堆栈跟踪中的URL不提供任何帮助,谷歌搜索也没有.我在哪里可以了解有关IsolatedStorage_Operation_ISFS的更多信息以及导致它的原因?

Kev*_*nte 7

这意味着您在Silverlight隔离存储中达到了文件长度限制.隔离存储的基本存储位置可以位于具有非常长名称的路径中 - 它看起来像:

C:\\Users\\kevind\\AppData\\LocalLow\\Microsoft\\Silverlight\\is\\1325qaxz.ekn\\xyro13wm.cn0\\1\\s\\qc4wuhalx4ciu4u5hbqqfohd3y3y4m1guyj5xuv5ml5y5qjbjmaaaeea\\f

(并且可以在XP上更长,其中基础是C:\ Documents and Settings)

鉴于此,达到260个字符的文件路径限制并不需要太多.基本路径加上内部路径(内部隔离存储)加上文件名必须少于260个字符.

在这种情况下,我见过两种不同的故障模式:

  1. 尝试创建一个总路径长度(基本路径加上新路径)长度超过260个字符的目录.这会导致IsolatedStorageFile.CreateDirectory引发PathToLongException

  2. 尝试使用IsolatedStorageFileStream创建文件,其中总路径长度(基本路径加内部路径加文件名)大于260个字符.这会导致IsolatedStorageFileStream构造函数引发IsolatedStorageException(IsolatedStorage_Operation_ISFS).

据我所知,除了捕捉异常并继续进行之外,这个问题没有真正的解决方案.这是Silverlight的一个不幸的限制.

这里有一篇关于这个问题的好文章:

http://msdn.microsoft.com/en-us/magazine/dd458794.aspx