【发布时间】:2017-08-03 18:28:26
【问题描述】:
Windows 10 和 Windows Server 2016 引入了针对传统长路径问题的解决方案。该解决方案易于实施,并且在以下blog 帖子中非常详细。按照这些步骤成功地为 .NET 控制台/桌面应用程序工作。但是,由于某种原因,当从 ASP.NET Web 应用程序运行相同的代码时,我仍然得到相同的经典 System.IO.PathTooLongException 异常。
抛出异常的代码:
Directory.CreateDirectory(longPath);
正如我提到的,代码在控制台应用程序上成功运行,但在 ASP.NET 网站应用程序中失败。网站 web.config 包括以下内容:
<?xml version="1.0"?>
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false"/>
</runtime>
</configuration>
和上面博客链接中解释的应用程序清单文件。
任何想法表示赞赏。
【问题讨论】:
-
相关的,可能与stackoverflow.com/questions/40722086/… 重复似乎链接的问题中有解决方法。
-
谢谢@bradbury9,它解决了 POC 上的问题。但是,基于 .NET 4.5.1 的生产项目没有
AppContext类来应用解决方案。有什么想法吗? -
如果项目使用没有
AppContext的框架,很可能.configAppContextSwitchOVerrides将不起作用,因为上下文不存在。我不知道如何在 4.5.1 中解决它 -
@bradbury9 谢谢,我解决了这个问题,你可以看到解决方法。在我看来,这几乎是重复,但重点和解决方案使它与众不同。
标签: c# asp.net windows-server-2016 pathtoolongexception