Windows Azure - "The Path is too long after being fully qualified" 错误信息的解决方案(转)

当你在developmentFabric上运行一个云服务时,developmentFabric会在一个临时文件夹下储存若干文件,包括本地储存的位置,缓存过的二进制文件,配置与诊断信息和缓存编译过的网站内容。

 

默认情况下临时文件夹为 C:\Users\<username>\AppData\Local\dftmp。

 

大多数情况下,你不必关心此临时文件夹。 Windows Azure工具会定时清理此文件夹,以免对此文件夹失去控制。

注意:如要手动清除此临时文件夹,你可以以管理员权限打开Windows Azure SDK Command Prompt(命令提示符工具),输入“csrun /devfabric:shutdown”并运行,之后再输入运行“csrun /devfabric:clean”。通常你无需这样做,但有时我们会用到他。

 

有时会有路径过长而引起问题的情况。

 

当你的用户名,云服务的项目名,角色名,组件名它们组合在一起过长时,会导致在运行时,部件或文件装载的问题。此时当你敲击F5你会得到如下信息,

 

 “The path is too long after being fully qualified. Make sure the full path is less than 260 characters and the directory name is less than 248 characters.”

 

拿我自己的测试来说,在我的云服务中其中一个部件的路径为:

 

C:\Users\jnak\AppData\Local\dftmp\s0\deployment(4)\res\deployment(4).CloudServiceabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqr.WebRole1.0\AspNetTemp\aspNetTemp\root\aff90b31\aa373305\assembly\dl3\971d7b9b\0064bc6f_307dca01\Microsoft.WindowsAzure.Diagnostics.DLL

 

它超出了路径260个字符的限制。

 

如果你还未给你的项目或部件取名,你可以为它们分别取一些更短的名字。

另一个变通的方法是将developmentFabric临时目录的位置改至更短的路径。

你可以在环境变量中将_CSRUN_STATE_DIRECTORY改为更短的路径,比如“C:\A”。

 

 

 

进行以上操作时,确保你已经关闭了Visual Studio 与developmentFabric(可以通过在Windows Azure SDK Command Prompt运行“csrun /devfabric:shutdown”或者在Windows Azure的系统托盘图标上点击“exit”)

做了如上变化之后,我的项目可以运行无虞了。

 

当然如上变通方法只是给了你在为项目部件等取名时,能用更多字符的余地。要从根本上解决此问题,你必须通过重命名来缩短你的路径名。

 

本文翻译自:

https://blogs.msdn.com/jnak/archive/2010/01/14/windows-azure-path-too-long.aspx