繁体   English   中英

在使用asp.net SiteMap控件进行菜单项处理时,出现错误Menu_HoverStatic为null或未定义,不是函数对象

[英]Getting error Menu_HoverStatic is null or undefined, not a function object, while using asp.net SiteMap control for menu items

我们的ASP.net应用程序最近从Windows 2008迁移到Windows 2016服务器IIS10。在IE 11中的Windows 7 OS中,我们面临菜单项无法访问且将鼠标悬停时出错的问题:(Chrome和Win 10 IE 11应用程序运行良好)

属性“ Menu_HoverStatic”的值为null或未定义,不是函数对象。

事件日志记录了另一个错误:

事件消息:处理Web或脚本资源请求时发生错误。 资源标识符解密失败。

<Data>w3wp.exe</Data>
<Data>IIS APPPOOL\SDMS3AppPool</Data>
<Data>HttpException</Data>
<Data>Unable to validate data.
   at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo, Boolean useLegacyMode, IVType ivType, Boolean signData)
  at System.Web.UI.Page.DecryptString(String s, Purpose purpose)
   at System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)

</Data>
    <Data>https://yourdomain.com/WebResource.axd?d=4008OIcfpQF6_PTcMUk_uuvjlbvBEPqjv3TH_Vnn6L3r0AEZJ8Q033KeIIkTHLC_AKyJ_c9JpdqPlJLfGOrxCpK--hZQ1gp-BXe8XbRP_6g1&amp;t=636511268826842555</Data>
    <Data>/WebResource.axd</Data>

我们在母版页中称为SiteMap:

    <div class="NavigationContent">
      <asp:Menu ID="Menu1" runat="server" Orientation="Horizontal" DataSourceID="SiteMapDataSource"  
        CssClass="Menu"

        StaticEnableDefaultPopOutImage="false"
        DynamicEnableDefaultPopOutImage="false"

        StaticMenuItemStyle-CssClass="MenuItem"
        StaticHoverStyle-CssClass="MenuItemHover" 
        StaticSelectedStyle-CssClass="MenuItemSelected"                                    

        DynamicMenuItemStyle-CssClass="MenuItem"
        DynamicHoverStyle-CssClass="MenuItemHover" 
        DynamicSelectedStyle-CssClass="MenuItemSelected"                                               

        OnDataBound="Menu1_DataBound"
      />                   
      <asp:SiteMapDataSource ID="SiteMapDataSource" runat="server" ShowStartingNode="false" />                                    
    </div>

通过谷歌,这个错误似乎是由于webresource.axd。 我尝试了以下建议:

应用程序池模式设置为Integrated,.net 4

将浏览器安全级别设置为低

在IIS处理程序映射中为应用程序虚拟目录添加webresource.axd。 Webresource.axd处理程序映射中

感谢所有的帮助!

我尝试了很多建议,最后通过机器密钥解决了这个问题。 如果您的服务器是Web场,请确保所有服务器中都有相同的密钥。

<system.web>
<machineKey validationKey="2488181654410AFDA27F6A1F4855B75E4E3BD4C7A18969D151A7524CEBE432583762F430B31D86AEEFD368CD2104616C38EABFCBC7C658DA3A553******" decryptionKey="30DC1CA2BD1BDDAB7BFA18DE02B0059443EC656B39FAB179E38CBD82CCF4E***" validation="SHA1" decryption="Auto"/>
</system.web>

您可以按照以下文章生成机器密钥:

在IIS中生成机器密钥

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM