【问题标题】:Not supported path's format不支持的路径格式
【发布时间】:2014-08-04 13:05:12
【问题描述】:

我添加了一个新网站和我尝试加载 Xml 的页面的 onLoad 事件

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(@"‪D:\languages\Lang-Ru.xml"); //ERROR
    }
}

当我启动站点时,出现错误:

“System.NotSupportedException”类型的异常发生在 mscorlib.dll 但未在用户代码中处理

附加信息:不支持给定路径的格式

堆栈跟踪:

в System.Security.Util.StringExpressionSet.CanonicalizePath(String 路径,布尔需要FullPath) в System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean 需要FullPath) в System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess 访问, AccessControlActions 控件, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) в System.IO.Path.GetFullPath(字符串路径) System.Xml.XmlResolver.ResolveUri(Uri baseUri, String relativeUri)
в System.Xml.XmlTextReaderImpl..ctor(String url, XmlNameTable nt) в System.Xml.XmlDocument.Load(字符串文件名) × _Default.Page_Load(Object sender, EventArgs e) в d:\sample\Default.aspx.cs:строка 14 в System.Web.UI.Control.LoadRecursive() System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint)

有人可以帮我吗?可能 IIS 中有一些非法设置。

【问题讨论】:

标签: c# asp.net iis


【解决方案1】:

网站无法访问本地驱动器。他们只能访问存储 HTML 的区域或其下方的位置。如果可以的话,这就是安全风险。

您想将 xml 文件添加到网站的内容区域,然后使用指向该位置的相对路径。

有很多方法可以“绕过”上述限制——但这样做的充分理由很少。如果要访问 XML 内容,最好的方法是让 IIs 软件管理文件的权限和访问权限。您将自己暴露在安全漏洞中的可能性要小得多。

【讨论】:

  • 或者用户应该明确拥有该文件夹的权限Link
  • 如果我使用 @"file:///D:\languages\Lang-Ru.xml" 它不会抛出异常。但是我的朋友使用 Path 的第一个样本,它没关系
  • @user2777827 - 见上面的附加评论
猜你喜欢
  • 2011-11-13
  • 2012-04-21
  • 1970-01-01
  • 2017-09-14
  • 2014-12-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-15
相关资源
最近更新 更多