获取错误 Menu_HoverStatic is null or undefined, not a function object, while using asp.net SiteMap control for menu items

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 服务器 IIS 10。 在 IE 11 的 Windows 7 OS 中,我们面临无法访问菜单项并且在悬停时抛出错误的问题:(Chrome 和 Win 10 IE 11 应用程序运行良好)

The value for property 'Menu_HoverStatic' is null or undefined, not a function object.

事件日志记录了不同的错误:

Event message: An error occurred processing a web or script resource request. The resource identifier failed to decrypt.

<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>

经过 google,这个错误似乎是由于 webresource.axd。 我尝试了以下许多建议:

App pool mode set to Integrated, .net 4

Set browser security level to low

Add webresource.axd in IIS handler mapping for application virtual directory.

感谢大家的帮助!!

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

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

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

Generate Machine Key In IIS