如何以中等信任从 ASP.NET 中的 bin 文件夹加载文件

Posted

技术标签:

【中文标题】如何以中等信任从 ASP.NET 中的 bin 文件夹加载文件【英文标题】:How do I load a file from bin folder in ASP.NET in medium trust 【发布时间】:2011-02-24 21:54:23 【问题描述】:

我需要从 ASP.NET 的 bin 文件夹中加载一个 XML 文件(MVC,这不算数)。我无法获取 bin 文件夹路径,也无法加载文件。我需要提供以下方法:

using(var file = System.IO.File.OpenRead(/* something */))



【问题讨论】:

【参考方案1】:

好吧..在中等信任下,我能做的只有这样:

var binFolderPath = Server.MapPath("bin");

然后

Path.Combine(binFolderPath, "myConfigFile.xml");

【讨论】:

【参考方案2】:

由于某些原因,默认情况下,您的 IIS 似乎不允许访问您的 bin 文件夹。这可能是从您的虚拟目录上方的父站点继承的。无论如何,请参阅此链接关于具有中等信任度的 FileIO:

http://msdn.microsoft.com/en-us/library/ms998341

您可能需要在 web.config 中添加一个部分,以提供对 AppDir 的特定访问权限,以覆盖父站点/虚拟目录中的设置。

<IPermission
  class="FileIOPermission"
  version="1"
  Read="$AppDir$"
  Write="$AppDir$"
  Append="$AppDir$"
  PathDiscovery="$AppDir$"
/>

【讨论】:

以上是关于如何以中等信任从 ASP.NET 中的 bin 文件夹加载文件的主要内容,如果未能解决你的问题,请参考以下文章

让 NHibernate 以中等信任度处理共享主机

哪个 IOC 容器以中等信任运行

从 ASP.Net 项目中查找 DLL 的路径

在中等信任的 ASP.Net 中读取程序集 Guid 而不锁定 appdomain 中的 DLL

什么是 Asp.net 中的中等信任?

如何防止外部文档文件被复制到 ASP.NET 应用程序中的 bin 文件夹