【问题标题】:Adding independent aspx/asmx pages into DotNetNuke将独立的 aspx/asmx 页面添加到 DotNetNuke
【发布时间】:2011-07-14 20:19:27
【问题描述】:

你好,我刚刚在我的服务器上安装了 dotnetnuke 5.06,比如说路径是 mydomain.com/dnn

我有一个独立于 dotnetnuke 的库,我必须运行它,它包含 Web 服务和各种其他 httphandler,所以我还没有尝试将它集成到 DNN 中。该库位于 mydomain.com/dnn/lib 下

该库在我运行 5.04 的旧服务器上运行良好,一切正常,但由于某种原因,当我尝试访问 mydomain/dnn 下的页面时,我使用 5.06(windows 2008,sql server,iis 7.5)的新安装返回 404 /lib/,不管它是 aspx,asmx...但是图像似乎工作得很好,其他一切要么返回 404,要么重定向到 DotNetNuke 中的 default.aspx。这在我的旧网站上从未发生过。

有人知道我在这里缺少什么吗?任何建议都将不胜感激。

【问题讨论】:

    标签: asp.net web-services iis asmx dotnetnuke


    【解决方案1】:

    DNN 5.5 中引入了一个问题,当这些文件位于 DesktopModules 文件夹之外时,它们会阻止这些文件。 DNN 5.6.1 fixed that 在某种程度上(我相当确定 aspx 现在可以工作),但不完全。查看链接的问题,在您的站点设置中关闭自动门户别名映射可能会有所帮助/修复。

    【讨论】:

    • 在哪里可以找到自动门户别名映射选项?
    • 嗯,我网站的门户设置(自动别名生成)一开始就设置为“无”,我玩过它,但它似乎无法解决问题......
    • 好的,当我将其设置为“canonical”时,当我转到 mydomain.com/dnn/lib 时,它以某种方式确定这是门户根目录,然后向我显示主页,是否有如何解除 dotnetnuke 对该文件夹的控制?这似乎是我必须做的。
    • 如果将文件夹转换为IIS中的应用程序,它会再次工作。
    • dotnetnuke 文件夹还是子文件夹?
    【解决方案2】:

    实际上,该问题仅在 DNN 5.6.2 中得到修复,该版本目前处于测试阶段。 5.6.1 版仍然有这个问题。有一种适用于各种情况的解决方法:将绝对 url 添加到 PortalAlias 表中。您必须手动执行此操作,因为 Portals 选项卡不允许与现有别名处于同一级别的别名。

    Another solution,如果你等不及新的 DNN 版本,包括在RequestFilterModule.vbUrlRewriteModule.vb 中添加以下代码,恢复现有行为。这不是应用于 DNN 5.6.2 的修复,因为程序员认为每次访问时检查文件是否存在对性能影响太大(我认为这很奇怪,因为每次访问都会触及多个文件,主要DNN缓存使用基于文件的缓存,一般来说,数据库访问比文件访问慢):

    'Add this to the RequestFilterModule.vb (line #59)'
    'and to UrlRewriteModule.vb (line #325)'
    If File.Exists(app.Server.MapPath(Request.Url.LocalPath)) And Not _ 
       Request.Url.LocalPath.ToLower.EndsWith(glbDefaultPage.ToLower) Then
    
         'exit early when path is an existing path'
         Exit Sub
    End If
    

    显然,如果应用此修复程序,则必须小心 DNN 的下一次更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-22
      • 2013-06-14
      • 2011-12-06
      相关资源
      最近更新 更多