404的错误页面未显示

时间:2013-10-28 18:32:22

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

我正在测试生产的dnn 7.1.1安装。我认为这个版本支持404错误页面。但无论我传递给DNN网站的哪种类型的错误网址,我都没有看到此页面出现,我在管理/页面管理下看不到它。我是否必须在某些地方使用此功能?这是一个全新的安装,以下页面说明默认情况下应该启用它:DNN 404 wiki 我在根web.config中找不到任何设置。已启用高级网址提供程序。

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

提前致谢

编辑1:

有人可以确认7.1.1是此功能的最低版本,或者仅使用专业版,我使用的是DNN平台。

编辑2:

有关DNN问题跟踪器的链接,请参阅HERE。我已尝试使用新安装和7.0.6升级,问题仍然存在。如果您要求不存在具有扩展名的资源,则会出现通用的asp服务器错误:

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

     

无法找到资源。

     

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

     

请求的网址:/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.
     

OR

     

您要查找的资源已被删除,名称已有   已更改,或暂时无法使用。

在升级或全新安装中,站点的管理/页面管理部分中没有404error页面。新的安装部署在用于DNN 7.1.1的Azure网站库中。

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

编辑3:

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

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

编辑4:

除了使用默认模板创建新网站并重新创建网站之外,我没有其他工作。看来这个错误计划由7.2.1修正,如记录HERE

编辑5:

我在数据库中挖掘,看看能否找到一个可以使这个工作的设置。我能找到的唯一设置是在门户设置中(称为“AUM_ErrorPage404”),所以我使用以下脚本复制它,但更改了portal和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

我不确定在数据库中查找设置为chnage的其他地方

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分: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的设置后,我必须清除缓存并重新启动应用程序。现在它有效。