在Web应用程序中启用长路径

时间:2017-11-06 22:22:56

标签: asp.net .net web-config app-config .net-4.6.2

我正在尝试在Web应用程序上启用长路径支持。我已经按照here指令操作,并且可以在一个简单的控制台应用上获得长路径。当我将相同的概念转换为Web应用程序时(使用web.config而不是app.config),System.IO会出现以下异常。

at System.IO.PathHelper.GetFullPathName() at System.IO.Path.LegacyNormalizePath(String path, Boolean fullCheck, Int32 maxPathLength, Boolean expandShortPaths) at System.IO.Path.GetFullPathInternal(String path) at System.IO.DirectoryInfo.Init(String path, Boolean checkHost)

我在网络应用和控制台应用上运行的代码行是

Dim dirInfo As New DirectoryInfo("\\fileserver\systems\devFramework\Deploy\DEV\11424495\Rollback_1314799492608780699\Rolloutsuperdupersongpathtestasdfasdfaasdfasasdfasadsfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfadsfasdfasdfasdfasdfasdfasddfasdfasdfasfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdftestadditionalcharacters")

由于两者都在使用System.IO我不明白这个问题是什么。我也尝试使用

在代码中添加开关
        System.AppContext.SetSwitch("Switch.System.IO.UseLegacyPathHandling", False)
    System.AppContext.SetSwitch("Switch.System.IO.BlockLongPaths", False)

解释here

似乎没什么用。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

所以问题是我将现有的应用程序从早期的.NET(4.5.1我相信)版本升级到.NET 4.6.2。出于某种原因,当我从get get创建一个面向.NET 4.6.2的新Web应用程序时,一切都按预期工作。我回过头来分析项目文件,并没有什么突出的罪魁祸首。

Win 10周年纪念更新似乎也引发了问题。如果您来到此页面,您也可以查看this,因为这也帮助我解决了这个问题。