asp.net – 网站随时随地突破
我已经有一些生产运行时错误,我不完全明白.我们在几个不同的ASP.NET 4.0网站上发生了这种情况(抖动 – 是的,我知道 – 我们将其移植到MVC,但是需要一些时间).
首先,我们从未在开发/质量检查环境中重现这个问题.其次,部署后,这个问题似乎是不存在的.有时这个问题在部署之后的一两天内就会出现,其他的时候,这个部署将会一个个月没有出现.但是,一旦显示,那么在网站上查看的任何页面会导致错误.最后,一旦我们迁移到.NET 4.0,这个问题似乎就出现了.一年前,我们开始在2.0,高达3.5,最近升到了4.0这个解决方案和大多数孩子项目. 错误: 我们的网站地图的简化版本(有些名称已更改,无趣的节点被删除)如下所示: <siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0"> <siteMapNode roles="*" title="EG"> <siteMapNode url="~/../SM/Default.aspx" title="Welcome" description="" roles="*" /> <siteMapNode url="~/../SD/Default.aspx" title="SD" description="" roles="*" /> <siteMapNode url="~/../SMD/Default.aspx" title="SMD" description="" roles="*" /> <siteMapNode url="~/Default.aspx" title="Ops" description="" roles="*" > <siteMapNode url="~/Error.aspx" title="Error" hide="true" roles="*" /> <siteMapNode url="~/Public/Login.aspx" hide="true" roles="*" /> <siteMapNode url="~/Manager/LPCE.aspx" title="LPCE" description="" roles="Administrator,Manager,System,Marketer" imageUrl="~/../SM/images/icons/LF.jpg" /> </siteMapNode> <siteMapNode url="~/../SDD/Default.aspx" title="SDD" description="" roles="*" /> <siteMapNode url="~/../CCD/Default.aspx" title="CCD" description="" roles="*" /> <siteMapNode url="~/../RD/Default.aspx" title="RD" description="" roles="*"/> <siteMapNode url="~/../SBD/Default.aspx" title="SBD" description="" roles="*" /> </siteMapNode> </siteMap> 它在我们的web.config中注册: <siteMap defaultProvider="SDXmlSiteMapProvider" enabled="true"> <providers> <add name="SDXmlSiteMapProvider" type="System.Web.XmlSiteMapProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="true" /> <add name="SecurityDisabledSiteMapProvider" type="System.Web.XmlSiteMapProvider,PublicKeyToken=b03f5f7f11d50a3a" siteMapFile="web.sitemap" securityTrimmingEnabled="false" /> </providers> </siteMap> 从日志中我缩小了几乎所有页面派生于基类中的错误的原因: private void Page_Load(object sender,EventArgs e) { if(!IsPostBack) { SiteMapDataSource.StartingNodeUrl = "~/Default.aspx"; } } 我已经确认在所有的SiteMaps中有一个节点与url =“?/ Default.aspx”与roles =“*”(包括公共/匿名访问),所以我很困惑为什么这个问题发生. 我考虑过的问题: > SiteMap没有Default.aspx的节点.他们都是. 有人可以点亮这个吗?似乎动态编译的SiteMap似乎已经损坏或某些东西.我找到的唯一的解决方案是IISRESET或等同物.即使如此,这个问题可以解决多久就没有任何意义.这是非常令人沮丧的! 解决方法
我把以前的帖子放在这个线程上,被删除:(不管怎样,我有同样的问题.
我发现无论我做了什么“找不到具有URL”?/ rootnode“的网站地图节点”.当我决定删除文件系统依赖关系并从恶意代码切换到SqlSiteMapProvider时,我的中断.我发现这个问题更可靠地重新创建. 总之,你得到那个消息,因为没有网站地图!我发现在siteMap数据源中,如果使用StartingNodeUrl =“?/ root.htm”,那么当没有建立站点地图时,会出现错误信息.但是,如果您使用StartingNodeOffset =“0”,则不会显示错误消息,并且在未构建站点地图时,根本没有渲染菜单. 对我来说似乎很奇怪,但我将其追溯到XmlSiteMapProvider.有时它有时建立它没有.不能让我的头完全在帽子下,但它看起来像异步发生的事情.无论如何我已经从wickedcode切换到SqlSiteMapProvider. 我所做的一个改变,除了转换为vb之外,是对覆盖的BuildSiteMap方法的返回进行递归调用: ' Return the root SiteMapNode If _Root Is Nothing Then Return Me.BuildSiteMap Else Return _Root End If 这样可以确保建立了Sitemap.我想到了一个无限递归的守卫,但似乎并不需要. 我仍然认为可能是网络滞后或一些身份验证(在我们这个地方是通过AD控制器,并且在早晨的第一件事情上落后!!)是什么让XmlSiteMapProvider错过了它的Async构建窗口? 真的希望这有帮助. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 你在哪里把非控制器,非模型代码放在ASP.Net
- ASP.Net MVC 引用动态 js 脚本
- asp.net – 什么是错误代码是0x80070001?那我该怎么解决呢
- asp.net-mvc – ASP.NET MVC:仅由其他操作调用的Action
- asp.net-mvc-3 – 从ASP .NET MVC3调用WCF服务的最佳实践是
- asp.net-mvc – asp.net mvc单选按钮状态
- asp.net-mvc – 来自HttpRequestMessage内容的文件名
- asp.net-mvc – 如何在MVC Filter属性中解析依赖注入
- asp.net – 如何在不依赖其扩展名的情况下检查上传文件的内
- asp.net-mvc – MVCGrid.Net排序问题 – sortdirection
- 详解ASP.NET Core 中的框架级依赖注入
- asp.net-mvc – Asp.net Identity:User.Identit
- asp.net – 为什么Scott Guthrie建议我们在Error
- asp.net – MS Chart for .NET预定义调色板颜色列
- asp.net-mvc – 为什么MVC会为完整视图和部分视图
- asp.net-mvc – 在Web API 2中使用MVC 5 Attribu
- asp.net-mvc – 如何在mvc中使用图表控件
- asp.net-mvc-3 – 错误:在登录时未找到视图’xx
- 从Azure功能调用Asp.Net Web API端点
- 打开排序时出现ASP.NET GridView CSS问题