当前位置:  开发笔记 > 编程语言 > 正文

为什么我的.NET应用程序在从网络驱动器运行时崩溃?

如何解决《为什么我的.NET应用程序在从网络驱动器运行时崩溃?》经验,为你挑选了3个好方法。

从网络驱动器运行时我的.NET应用程序失败,即使同一个可执行文件从本地硬盘运行完全正常运行?

我尝试检查"完全信任",如下所示:

try
{
    // Demand full trust permissions
    PermissionSet fullTrust = new PermissionSet( PermissionState.Unrestricted );
    fullTrust.Demand();

    // Perform normal application logic

}
catch( SecurityException )
{
    // Report that permissions were not full trust
    MessageBox.Show( "This application requires full-trust security permissions to execute." );
}

但是,这没有帮助,我的意思是应用程序启动并且永远不会输入catch块.但是,调试版本显示抛出的异常是由InheritanceDemand引起的SecurityException.有任何想法吗?



1> Davy Landman..:

这确实与网络位置上的应用程序不太可信,然后在本地硬盘上这一事实有关(由于.NET框架的默认策略).

如果我没弄错,微软最终在.NET 3.5 SP1中纠正了这种烦恼(在许多开发者抱怨之后).

我谷歌了:.NET Framework 3.5 SP1允许从网络共享启动托管代码!


更新:安装.NET 4.0运行时,.NET 3.5 SP1中修复的问题似乎再次出现.

2> Gulzar Nazim..:

您是否尝试过使用CasPol来完全信任共享?



3> Ben Hoffstei..:

您可能已经这样做了,但您可以使用CasPol.exe为指定的网络共享启用FullTrust.

例如

cd c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
CasPol.exe -m -ag 1.2 -url file:///N:/your/network/path/* FullTrust

更多信息在这里.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有