为什么我的新 .Net 4.0 EF 应用程序会随机锁定?

2024-03-19

我最近推出了一个新的 ASP .Net 应用程序。该应用程序使用.Net 4.0和Entity Framework 4。它是一个“基本”CRUD应用程序。我几乎专门使用 EntityDataSource 进行数据访问。

用户报告了应用程序“偶尔冻结”(他们都使用 IE 8)。如果用户关闭浏览器并重新启动,则应用程序正常。这种情况每天可能会发生一到两次,通常对于重度用户来说。 (因此,我一直倾向于内存泄漏或其他某种资源限制。)

直到不久前,我还从未见过这种情况发生。它不会在客户端 PC 或服务器上的事件日志中留下任何内容。此外,IIS 错误日志或 SQL 日志中也没有任何内容。

不久前,我终于实现了这一点。我将所有 EntityDataSource 切换为每页使用一个对象上下文。我下载了 EF Profiler(这似乎是一款很棒的产品),它指出我在许多页面上使用多个对象上下文,因为其中许多页面都有多个 EntityDataSource。所以,我正在清理所有这些并测试每个页面,当你瞧......IE 停止加载页面!

起初,页面开始加载缓慢(这是我已经修改为使用单个对象上下文的页面,所以尽管我仍然相信我需要在所有页面中实现这种“单例”模式,但我想它不是' t 罪魁祸首!无论如何..),然后在某个时候我收到:

消息:Sys.WebForms.PageRequestManagerTimeoutException:服务器请求超时。

事件日志中仍然没有任何内容。我还检查了 IIS 网络日志,我没有看到任何内容,但是用肉眼很难阅读它们,我可能必须下载一个解析器以确保其中没有任何内容。

不管怎样,我决定启动另一个窗口并导航到我的应用程序,果然该窗口工作正常,没有问题。我回到停止响应的窗口,刷新它,等待...转到我的应用程序的主页(基本上只是一些静态 html.. 没有任何内容...)。接下来,我在当前冻结的窗口中打开了一个新选项卡,该选项卡工作正常。因此,我返回到无法再从我的应用程序加载页面的窗口,并尝试其他一些网站...espn.com 加载正常,msn.com 加载正常,然后我输入我的应用程序主页的 URL (并尝试了我的应用程序中的其他一些页面)但什么也没有。 IIS 甚至不会在其日志文件中记录尝试(就像 IE 刚刚决定不再为我的本地主机执行“获取”操作一样!)。最后,等待一段时间后(当我输入这篇文章时),我现在在该窗口中看到以下错误消息:

Internet Explorer无法显示该网页。您可以尝试的操作:该问题可能是由多种问题引起的,包括:BLAH BLAH BLAH...

因此,我跳回该窗口,它仍然可以正常浏览互联网站点。但是,当我再次尝试访问应用程序中的任何页面时,我什么也没有得到(选项卡中旋转的蓝色圆圈)。因此,我再次在同一浏览器中启动一个新选项卡,我可以很好地浏览我的应用程序。

我的应用程序对此浏览器实例做了什么,不再让它加载任何页面(事实上,它似乎甚至没有在任何应用程序页面上执行 GET,因为 IIS 中没有任何新内容)日志...除了当我在这些其他选项卡和/或浏览器窗口中加载页面时工作正常,因此日志记录仍在工作...)?我将永远感激能够帮助我解决这个问题的人。我不确定它会有多大作用,但我将保留此浏览器窗口,以便有人可以告诉我一些事情来尝试诊断此问题。感觉我已经很接近弄清楚了。我终于有一扇行为不端的窗户了。我害怕关闭窗口或在应用程序上进行新的构建,直到我得到一些关于尝试的好的意见......

我应该补充一点,当这种情况发生在我身上时,我正在本地电脑上运行,所以我是唯一的用户,并且只打开了一个应用程序窗口。

虽然,我完全被难住了!


我们遇到了同样的问题,似乎通过将以下 JavaScript 添加到所有使用 ajax 的页面来解决该问题:

window.onunload = abortRequest;
function abortRequest() {
   Sys.WebForms.PageRequestManager.getInstance().abortPostBack();
} 

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的新 .Net 4.0 EF 应用程序会随机锁定? 的相关文章

  • 增量决策树 C++ 实现

    有谁知道决策树分类器的增量实现吗 这样 当您将新实例添加到训练集中时 它可以根据现有决策树分类器以低计算量并尽可能快地生成最佳决策树分类器 换句话说 我有一个最优决策树分类器集A 其中命名为T 1 现在我想添加实例X to set A并找到
  • 为什么将 char 传递给函数会改变它在 c 中的值?

    我目前正在关注本作业簿 http www cs bham ac uk exr lectures opsys 10 11 lectures os dev pdf关于构建操作系统 我的目的是写一个64位内核 我已经在文本模式下加载 内核 代码并
  • 我的 WPF 应用程序未触发 MainWindow_Loaded

    我目前正在关注Pluralsight C Fundamentals Part 1并在Classes and Objects视频部分指导我在 Visual Studio 中创建一个新的 WPF 应用程序并填写代码 这导致以下结果 namesp
  • 多维数组和指向指针的指针

    创建多维数组时char a 10 10 根据我的书 它说你必须使用类似于char a 10 将数组传递给函数 为什么必须这样指定长度 您不是只是将双指针传递给 with 并且该双指针不是已经指向分配的内存吗 那么为什么参数不能是char a
  • ASP.NET中如何访问除wwwroot以外的位置

    我可以使用访问服务器的物理位置Server MapPath 这给了我内部的物理路径wwwroot文件夹 我想将一些数据保存到同一服务器的另一个驱动器中D 驾驶 我想我无法获取以下位置的物理位置D 驾驶使用Server MapPath因为它位
  • Identity Server 4:添加访问令牌的声明

    我正在使用 Identity Server 4 和隐式流 并且想要向访问令牌添加一些声明 新的声明或属性是 tenantId 和 langId 我已将 langId 添加为我的范围之一 如下所示 然后通过身份服务器请求 但我也获得了tena
  • 为什么这个单独的定义会导致错误?

    挑战 我有这段代码无法编译 你能找出问题所在吗 有一次让我很头疼 header namespace values extern std string address extern int port cpp file std string v
  • 如何使用 ProtoGen 从 proto 文件生成结构

    我们一直在使用 protobuf net ProtoGen 从 proto 文件生成 C cs 文件 我们希望代替类来生成结构 例如 DataContract public struct Entity1 ProtoMember 1 publ
  • .NET - 将颜色名称字符串转换为 System.Drawing.Color

    将 red green yellow aliceblue 等字符串转换为实际的 System Drawing Color 值的最佳方法是什么 我正在查看反思 发现有些事情似乎不对劲 您可以使用 Color FromName
  • 为什么我无法调试动态加载的程序集?

    我正在开发一个 Web API 项目 该项目使用内部模拟框架 允许拦截和修改来自控制器的响应 它使用 MEF 加载包含某些先决条件匹配时执行的代码的程序集 我知道这是正常工作的 因为我可以在响应中看到模拟已被执行 但由于某种原因我无法调试动
  • C 中的链表数组:初始化和插入?

    我需要创建一个链表数组 如图所示 这就是我到目前为止所做的 typedef struct Node int data struct Node next Node int main void Node link 5 for int q 0 q
  • 我可以对(非成员)函数使用部分模板特化吗?

    我试图在 非成员 函数上使用部分模板专业化 但我在语法上遇到了问题 我在 StackOverflow 中搜索了其他部分模板专业化问题 但这些问题涉及类或成员函数模板的部分专业化 作为起点 我有 struct RGBA RGBA uint8
  • Request.Form 和 Request.QueryString 之间的区别?

    有人可以告诉我两者之间的确切区别吗Request Form and Request QueryString 我知道一个区别 比如 如果HTTP请求方式为POST 则用户提交的数据在申请表 收藏 如果HTTP请求方法是GET 则用户提交的数据
  • 密码保护 IIS 7.5 中的 ASP.NET Web 应用程序

    我在 Windows 7 上使用 IIS 7 5 为我的 asp net 网站提供测试服务 为了阻止随意的人查看我的网站 我希望 IIS 在提供任何服务之前需要用户名和密码 我已尝试在应用程序上禁用匿名身份验证并启用 Windows 身份验
  • 将 System.Array 从 .Net 编组到 vb6

    我有一个 Net 组件 它有一个 COM 可见类 该类具有返回 System Array 的方法 它实际上返回一个字符串数组 但返回类型声明为 System Array 不要问我 为什么 我知道我可以将返回类型声明为 string 这样就可
  • 用于 nmap 输出的 C++ xml 解析器

    我是 nmap 的新手 我在 nmap 教程中看到 https nmap org book man output html https nmap org book man output html oX 选项可用于获取 xml 格式的 nma
  • 隔离必需的字段验证器?

    我在页面上有两个搜索按钮 一个链接到下拉列表 另一个链接到带有文本框的下拉列表以获取更多搜索条件 我在所有上述控件上都需要现场验证器 当我从第一个下拉列表中选择某些内容并单击相应的搜索按钮时 文本框的字段验证器会触发 从而禁用第一个搜索按钮
  • asp.net mvc GET 请求上的 formcollection 应该为空

    我正在发布一个简单的操作 public void Login FormCollection formCollection 即使查询字符串值很少 formcollection Count is 0 是靠行为吗 FormCollection 使
  • 如何使用 Ioc Unity 注入依赖属性

    我有以下课程 public interface IServiceA string MethodA1 public interface IServiceB string MethodB1 public class ServiceA IServ
  • C#:如何处理乱序 TCP 数据包?

    请有人解释一下如何处理乱序数据包 我使用原始套接字来捕获数据包 并在数据包到来时解析它们 但其中一些数据包的顺序错误 例如 ID 标志 16390 PSH ACK 16535 PSH ACK 16638 确认 16640 PSH ACK 1

随机推荐