Asp.net 在web应用程序上使用.NET 4.6.2的长路径问题
我正在构建一个需要使用长路径的ASP.NET web应用程序。我把它瞄准了.NET4.6.2,因为4.6.2默认打开了长路径(),直到Windows10创建者(RS2)更新,所以一切都很完美 突然System.IO返回最大路径异常。我做了一些研究发现。似乎是Windows 10创建者(RS2)更新后,为了长路径工作,需要有一个app.mainfestAsp.net 在web应用程序上使用.NET 4.6.2的长路径问题,asp.net,.net,Asp.net,.net,我正在构建一个需要使用长路径的ASP.NET web应用程序。我把它瞄准了.NET4.6.2,因为4.6.2默认打开了长路径(),直到Windows10创建者(RS2)更新,所以一切都很完美 突然System.IO返回最大路径异常。我做了一些研究发现。似乎是Windows 10创建者(RS2)更新后,为了长路径工作,需要有一个app.mainfest <application xmlns="urn:schemas-microsoft-com:asm.v3"> <wind
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
真的
我已经验证了将app.manifest修改添加到控制台应用程序会恢复长路径功能。唯一的问题是这是一个web应用程序。我无法理解如何将app.manifest的等效项添加到web应用程序中
我不知道如何添加app.manifest的等效项
到web应用程序
这并不完全是标准做法,但您可以向ASP.NETWeb应用程序添加清单。如果您使用的是VS2017,它将类似于以下屏幕:
您可以尝试使用regedit更改此设置:
以管理员身份运行regedit.exe
[HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
[LongPathsEnabled](DWORD)
更改为1
计算机配置>管理模板>系统>文件系统>启用NTFS长路径
您可以尝试在web.config中的
结束标记后添加以下行:
<runtime>
<AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false" />
</runtime>
您可以尝试在文件路径前面加上\\?\
前缀,以指定文件路径的长度超过最大路径260个字符。您可以在以下链接中找到更多信息:
是否有可能出现在更新之前工作但现在不工作的可运行示例代码?这将更容易测试。