为什么我的.NET应用程序崩溃从网络驱动器运行时?(Why does my .NET applica

2019-07-19 23:06发布

从网络驱动器运行时,即使在同样的可执行文件运行完美的罚款从本地硬盘驱动器我的.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。 有任何想法吗?

Answer 1:

它确实是与事实有关的网络位置的应用程序都不太信任,然后在您的本地硬盘(由于.NET框架的默认策略)做。

如果我没有记错的微软终于在.NET中纠正了这个烦恼3.5 SP1(后很多开发商抱怨)。

我google'd它: .NET框架3.5 SP1允许从网络共享启动托管代码!



Answer 2:

你尝试使用CasPol完全信任一个分享 ?



Answer 3:

您可能已经做到了这一点,但你可以用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

更多信息这里 。



Answer 4:

如果这是.NET 2.0或更高版本, ClickOnce的创建真正与此部署的东西帮助。 我只使用部署到网络共享。



Answer 5:

这是一幢建于微软在.NET Framework中的安全性。 这是阻止恶意软件的方式来全特权时在本地运行,所以你不能在代码编程改变这一点。

什么,你需要做的是增加特定组件的信任。 您在.NET Framework配置(控制面板 - >管理工具)做到这一点,并在每台计算机上完成。

对于任何安全措施,这是一个痛苦的-的屁股,但会帮助世界少感染等..



Answer 6:

我所要做的就是文件标记为只读(可能是不相关的),并给予所有权限,除了完全控制验证用户。 之前,我这样做,当我有网络共享仅适用于域用户设置,我遇到这个问题。

我发现这个解决方法,因为无论是管理共享(\服务器\ C $),也不是我自己的电脑的股票有这个问题。

编辑:应用定位的是.NET 3.5,在这里没有SP1(版本3.5.7283)



文章来源: Why does my .NET application crash when run from a network drive?