【问题标题】:run c# app from network share从网络共享运行 c# 应用程序
【发布时间】:2011-11-05 20:22:01
【问题描述】:

我是 C# 新手,所以如果我问一些入门级问题,请原谅我。

目前,我有一个小窗口窗体,上面有取消按钮。我注意到当我在本地机器上运行它时,取消按钮工作正常。但是当从 xp 机器上的网络位置运行时,它给了我安全例外。 异常告诉我我不能调用非托管代码等.... 但我的表单只有一个按钮,事件处理程序中的代码是:Application.Exit();

在谷歌搜索后,我发现我可以通过 mscorcfg.msc 进行更改以授予 Intranet 权限。这对我有用。

我发现的另一个解决方法是http://msdn.microsoft.com/en-us/library/aa288469(v=vs.71).aspx

但是,这只是一台机器的解决方法,如果我有一百台机器怎么办????

所以我认为必须有其他方法来处理这个问题,有人可以帮忙吗??

【问题讨论】:

标签: c#


【解决方案1】:

这是 .NET 框架本身的一个特性:代码访问安全性。

默认情况下,网络共享上的代码将以 LocalIntranet 的安全级别运行,其特权级别低于在“安全”位置的本地驱动器上运行。

您可以使用工具caspool 来摆脱此限制,并为网络位置上的可执行文件提供信任执行,例如:

caspol -machine -addfulltrust program.exe

【讨论】:

  • 是的,我确实找到了这个工具 caspol,但这只是一台机器,一百台机器怎么样?没有办法在代码中做到这一点吗??
【解决方案2】:

更新到较新版本的框架。如果您运行的是 .Net 3.5 sp1 或更高版本,.Net 不再对网络共享强制执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    相关资源
    最近更新 更多