错误描述:
    以host登录DNN3.0.8网站,点击“常规任务”上的“文件”图标,会出现如下错误:

错误: 文件管理器 当前无效.

DotNetNuke.Modules.Admin.FileSystem.FileManager.BindFolderTree() at DotNetNuke.Modules.Admin.FileSystem.FileManager.Page_Load(Object sender, EventArgs e) --- 内部异常堆栈跟踪的结尾 ---

解决过程:
    先查看了一下路径“F:\My Projects\Asp.NET Source\DotNetNuke\DotNetNuke_3.0.8\DNN3\Portals\0\”是存在的,所以问题不是路径不存在。
    接着查看DotNetNuke.Modules.Admin.FileSystem.FileManager.BindFolderTree() 函数,发现有这么关键的一句:
    _CurRootFolder = PortalSettings.HomeDirectoryMapPath
    跟踪到PortalSettings类Component\PortalSettings.vb)文件里的第122行,有下面一句:
    Return objFolderController.GetMappedDirectory(ApplicationPath & "/" & HomeDirectory)
    原来问题就在此处,ApplicationPath是“当前应用程序的虚拟路径”,原来FileManager.BindFolderTree() 函数里面要的路径是物理路径,而这句代码得到的却是一个虚拟路径+物理路径,看来是一个Bug啊!将代码进行如下修改:
   Return objFolderController.GetMappedDirectory(HomeDirectory)
重新编译后,再运行网站,问题解决!

一点心得:
    调试ASP.NET程序时应当善于利用错误信息,逐步分析,当然前题是要有程序本身要有良好的错误捕捉机制。

相关文章:

  • 2021-08-30
  • 2022-12-23
  • 2021-10-21
  • 2021-11-04
  • 2022-12-23
  • 2021-12-31
  • 2021-03-30
猜你喜欢
  • 2022-12-23
  • 2021-04-03
  • 2022-12-23
  • 2022-12-23
  • 2021-04-06
  • 2021-12-16
  • 2021-10-15
相关资源
相似解决方案