【问题标题】:System.Security.SecurityException - neither ASP.NET nor IE is involvedSystem.Security.SecurityException - 既不涉及 ASP.NET 也不涉及 IE
【发布时间】:2012-06-09 18:10:22
【问题描述】:

知道了:

System.Security.SecurityException:请求类型的权限 'System.Security.Permissions.FileIOPermission, mscorlib, 版本=2.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089' 失败的。 (在 System.Security.CodeAccessSecurityEngine.Check(对象 需求, StackCrawlMark& stackMark, Boolean isPermSet)....

网络上有很多与此问题相关的参考资料,但它们都指的是 ASP.NET 应用程序,或者它们与使其以某种方式“非法”进入 GAC 的程序集有关 - 这不是我的问题。

我有一个本地驱动器 D:\,其中包含:

D:\APLData\T

D:\APLData\I

D:\APLData\M

D:\APLData\P

D:\APLData\Z

有时我有网络驱动器 T、I、M、P 和 Z 指向这些文件夹。也就是说,这两条路径都指向同一个文件:

D:\AplData\T\FlipDB_Dev\Test\ShareTest.DWS

T:\FlipDB_Dev\Test\ShareTest.DWS

现在,当我从网络驱动器 (T) 启动相关程序时,我会收到错误消息。当我从本地驱动器 (D) 启动程序时,它就可以工作了。

任何想法如何解决这个问题?

【问题讨论】:

  • 我发现了这个:link,它最初没有引起我的注意,因为它不包含我也添加到该线程的错误消息。
  • 你的代码是从哪里执行的?这是一个Windows应用程序?网络应用?

标签: .net securityexception


【解决方案1】:

您是否检查了文件/文件夹的权限。特别是当链接到 LAN 共享上的文件时,ASP.NET 不会自动获得访问这些文件的权限,因为权限是在物理托管文件的机器上设置的。

您可以尝试为用户组“Everyone”设置完全权限,但是,一旦找到正确的权限级别,请不要忘记删除该权限。

更新: 检查此链接,可能会派上用场

http://www.codeproject.com/Articles/19830/How-to-Access-Network-Files-using-asp-net

【讨论】:

  • 不,这与我的问题无关:这是关于 .NET 安全性,而不是文件权限。
  • ASP.NET SecurityExceptions 会在您遇到权限问题时发生,并且由于您尝试访问抛出异常的文件,因此很可能是权限问题。但是,如果您将文件用作组件,则可能需要更高的信任级别才能运行它。但很可能是权限问题,您可以尝试通过将文件从映射的网络驱动器复制到与 Web 应用程序相同的目录并尝试从那里引用它。
【解决方案2】:

映射的驱动器是特定于用户的。如果您有权限并且您正在像您一样运行该应用程序,那么它应该可以工作,如果这是不同的帐户,那么您都需要权限并且相同的驱动器映射到相同的位置。为自己省点心痛,使用 UNC。

【讨论】:

  • 不,这与我的问题无关:反正是同一个用户。
猜你喜欢
  • 2012-03-15
  • 2016-02-08
  • 1970-01-01
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多