C# Silverlight正在删除目录

C# Silverlight正在删除目录,c#,silverlight,directory,C#,Silverlight,Directory,我有一个Silverlight应用程序。它与用户DefaultAppPool一起工作。获得了服务器上的所有权限。(写入/修改/删除等) 如果我在本地运行它,它可以创建和删除目录为directory.CreateDirectory和directory.DeleteDirectory的目录 但是,如果我将silverlight应用程序联机,它可以写入,但不能删除 有没有办法检查问题是什么,为什么不删除?有人有什么建议我可以试试吗 (我还尝试了以下做法: System.IO.DirectoryInfo

我有一个Silverlight应用程序。它与用户DefaultAppPool一起工作。获得了服务器上的所有权限。(写入/修改/删除等)

如果我在本地运行它,它可以创建和删除目录为directory.CreateDirectory和directory.DeleteDirectory的目录

但是,如果我将silverlight应用程序联机,它可以写入,但不能删除

有没有办法检查问题是什么,为什么不删除?有人有什么建议我可以试试吗

(我还尝试了以下做法:

System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(App.Serverpath);
dir.Delete(true);

我检查了服务器路径,它是正确的!)

是的。默认情况下,Silverlight是一个沙盒运行时环境。默认情况下,它不允许您删除运行应用程序的计算机上的文件。但是,您可以通过将其切换到提升信任模式来允许它这样做。基本上有两种方法。浏览器内和浏览器外(OOB)。脱离浏览器更简单,但用户需要安装应用程序。无论哪种方式,您都需要购买代码签名证书并对Xap包进行签名

对于浏览器内应用程序,需要在注册表级别显式配置客户端计算机,以提高对浏览器的信任。如果客户端将应用程序安装为OOB应用程序,则无需执行此操作

关于建立提升信任的文章很多,但这里有一篇:


注意:我对你在这里使用“服务器”这个词有点困惑。Silverlight,一般来说是一种客户端技术。您将无法直接删除服务器上的文件。如果需要删除服务器端的文件,则需要在服务器端构建某种服务(例如WCF或REST),并从客户端的Silverlight调用这些服务。这可能更容易,因为如果您确实需要删除服务器上的文件,则只能在服务器上运行Sivlerlight应用程序,这似乎不正确。

您是在本地删除目录,还是在服务器上删除目录?除非Silverlight以完全信任的方式运行,否则您不能删除本地目录。如果我在本地运行它,它将创建一个本地临时目录,当应用程序关闭时,该目录将被删除。如果我在服务器上运行它,它会在服务器上创建一个临时目录,但在应用程序关闭时不会删除此文件夹!