【问题标题】:7.1 error page for 404 is not showing up404 的 7.1 错误页面未显示
【发布时间】:2013-10-28 18:32:22
【问题描述】:

我有一个 dnn 7.1.1 安装,我正在测试生产。我以为这个版本支持 404 错误页面。但是,无论我传递给 DNN 站点的错误 URL 类型是什么类型,我都不会显示此页面,并且在管理员/页面管理下也看不到它。我必须在某个地方打开此功能吗?这是一个全新的安装,下面的页面说它应该默认打开:DNN 404 wiki 我在根 web.config 中找不到任何设置。高级网址提供程序已启用。

谁能帮我弄清楚如何实现这个 404 错误页面

提前致谢

编辑 1:

有人可以确认7.1.1是这个功能的最低版本,还是只有专业版,我使用的是DNN平台。

编辑 2:

有关 DNN 问题跟踪器的链接,请参阅 HERE。我已经尝试过新安装和从 7.0.6 升级,但问题仍然存在。如果你请求一个不存在的资源,你会得到一个通用的 asp 服务器错误:

“/”应用程序中的服务器错误。

找不到资源。

描述:HTTP 404。您正在寻找的资源(或其之一 依赖项)可能已被删除,名称已更改,或者是 暂时不可用。请查看以下 URL 并制作 确保拼写正确。

请求的 URL:/blob.aspx

如果您请求的页面没有 /blob 之类的扩展名,则会出现以下两个错误之一:

404 Not Found
The requested Url does not return any valid content.
Administrators
Change this message by configuring a specific 404 Error Page or Url for this website.

您要查找的资源已被删除,有它的名字 已更改,或暂时不可用。

无论是升级版还是全新安装版,网站的管理员/页面管理部分都没有 404error 页面。新安装部署在 Azure 网站库中,用于 DNN 7.1.1。

我手动将一个 7.0.6 实例升级到 7.1.1 以获得其他测试环境。

编辑 3:

好的,所以我知道如何重现这个。如果您使用空白模板创建新门户/站点,则管理员/页面管理下没有 404 错误页面。如果您使用默认的英文模板创建站点,则 404 错误页面会在页面管理中列出,并且在您请求死页时会显示 404 页面。

我尝试了什么: 我将 404 错误页面从默认模板站点复制到空白模板站点,希望这可以解决问题。它没。所以现在我认为需要在某处启用一个设置,但我知道它不在 web.config 文件中,因为这两个门户都在同一个 dnn 实例中,一个有效,另一个无效,所以有我必须在另一个地方找到这个。

编辑 4:

除了使用默认模板创建新站点并重新创建站点之外,我没有其他解决方法。看来此错误计划在 7.2.1 中修复,如记录的HERE

编辑 5:

我翻遍了数据库,看看是否能找到一个可以使这项工作发挥作用的设置。我能找到的唯一设置是门户设置(称为“AUM_ErrorPage404”),所以我使用以下脚本复制了它,但更改了门户和 tabID 以匹配使用空白模板创建的门户。

这向门户设置添加了一个设置,该设置将错误页面分配给门户。我为默认模板而不是空白模板找到了此设置。所以我添加了它,希望它能解决我的问题。它没有。

INSERT INTO [dbo].[PortalSettings](
       [PortalID]
      ,[SettingName]
      ,[SettingValue]
      ,[CreatedByUserID]
      ,[CreatedOnDate]
      ,[LastModifiedByUserID]
      ,[LastModifiedOnDate]
      ,[CultureCode])
  VALUES (
       [PortalID]
      ,'AUM_ErrorPage404'
      ,[TabID of 404 Page I Created]
      ,[CreatedByUserID]
      ,getdate()
      ,[CreatedByUserID]
      ,getdate()
      ,'en-us')

我发现默认模板中创建的页面的[TabSettings]中没有404error页面/标签的设置,实际上默认模板门户中创建的错误页面的tabSettings中没有记录..

在 7.1 中使用默认模板创建的全新站点仅具有以下门户设置(带值):

AUM_ErrorPage404    371
DefaultAdminContainer   [G]Containers/Gravity/Title_h2.ascx
DefaultAdminSkin            [G]Skins/Gravity/2-Col.ascx
DefaultPortalAlias          test404
DefaultPortalContainer  [G]Containers/Gravity/Title_h2.ascx
DefaultPortalSkin           [G]Skins/Gravity/2-Col.ascx
EnableSkinWidgets           True
GettingStartedPageShown True
GettingStartedTabId 346
MaximumVersionHistory   5
PortalAliasMapping          CANONICALURL
SearchAdminInitialization   true
TimeZone                            Pacific Standard Time

我不确定在 DB 中的其他位置可以查找要更改的设置

【问题讨论】:

    标签: http-status-code-404 dotnetnuke dotnetnuke-7


    【解决方案1】:

    经过一些研究和数小时的挫折。我发现7.2.2版本需要一个新的设置:

    表:PortalLocalization 现在包含两个字段:Custom404TabId 和 Custom500TabId,这些字段需要使用 PortalSetting AUM_ErrorPage404、AUM_ErrorPage500 的相同值进行更新,因此如果您从以下版本升级到 7.1,您可能必须通过以下方式更新这些字段自己。

    希望这能节省时间。 以色列加西亚

    【讨论】:

    • 谢谢,我相信这会对某人有所帮助。我从 7.1 升级到 7.2.2,在完成我在答案中提到的修复后,我的错误页面仍然有效。
    • 在 7.2.2 中,您提到的两个字段 Custom404TabId 和 Custom500TabId 可以使用 Admin | 进行编辑。网站设置 |高级设置(分别为 404 错误页面和 500 错误页面)
    【解决方案2】:

    好的,我开始工作了!

    上面的脚本成功了:

    INSERT INTO [dbo].[PortalSettings](
           [PortalID]
          ,[SettingName]
          ,[SettingValue]
          ,[CreatedByUserID]
          ,[CreatedOnDate]
          ,[LastModifiedByUserID]
          ,[LastModifiedOnDate]
          ,[CultureCode])
      VALUES (
           [PortalID]
          ,'AUM_ErrorPage404'
          ,[TabID of 404 Page I Created]
          ,-1
          ,getdate()
          ,-1
          ,getdate()
          ,'en-us')
    

    错过的步骤:

    添加 AUM_ErrorPage404 的设置后,我必须清除缓存并重新启动应用程序。现在可以了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 2011-02-08
      相关资源
      最近更新 更多