2

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

有人可以帮我弄清楚如何实现这个 404 错误页面

提前致谢

编辑1:

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

编辑2:

请参阅此处获取 DNN 问题跟踪器的链接。我已经尝试过新安装和从 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

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

4

2 回答 2

4

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

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

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

于 2014-04-19T08:21:22.133 回答
1

好的,我得到它的工作!

上面的脚本成功了:

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 的设置后,我必须清除缓存并重新启动应用程序。现在它起作用了。

于 2013-11-07T17:13:18.717 回答