有关 system.stackoverflowException 的帮助

发布于 2024-08-13 08:37:45 字数 403 浏览 5 评论 0原文

突然我的应用程序在应用程序事件查看器中发出此消息:

EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d6968e, P4 app_code.ahowircm, P5 0.0.0.0, P6 4b167253, P7 30, P8 0 ,P9 system.stackoverflowexception,P10 NIL。

从昨天开始一切都没有改变,之前一切都很好。该服务器正在 Windows Server 2003 之上运行一些 .net 2.0 Web 服务。!!!!!

编辑:

另外,我在两台服务器 2008R2 和 2003 上运行它,完全相同的代码,在 2008R2 上它工作正常,但在 2003 上它停止了应用程序池。

All of a sudden my app is handing this out in the application event viewer:

EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d6968e, P4 app_code.ahowircm, P5 0.0.0.0, P6 4b167253, P7 30, P8 0, P9 system.stackoverflowexception, P10 NIL.

Nothing has changed since yesterday, and everything worked fine before. The server is running some .net 2.0 webservices on top of Windows Server 2003.!!!!!

Edit:

Also I'm running this on two servers, 2008R2 and 2003, the exact same code, on 2008R2 it works fine, but on 2003 it stops the application pool.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

围归者 2024-08-20 08:37:45

这并不是真正的答案,更多的是有关 CL20r3 事件日志条目的“相关有趣信息”。

CLR20r3 说明

P1 应用程序名称

P2 应用程序版本

P3应用程序时间戳

P4 程序集/模块名称

P5 程序集/模块版本

P6 程序集/模块时间戳

P7 MethodDef

P8 IL 偏移量

P9 异常名称

您可以在 P1 上使用 ILDASM,搜索 060000xx 的 MethodDef(其中 xx是P7),获取方法抛出。

然后使用reflector查看代码,以IL模式查看,找到P8处IL的行。

通常它会直接将您指向引发异常的行。

Not really an answer, more of a "related interesting info" on those CL20r3 event logs entries.

CLR20r3 explaination

P1 Application Name

P2 Application version

P3Application time stamp

P4 Assembly/Module name

P5 Assembly/Module version

P6 Assembly/Module timestamp

P7 MethodDef

P8 IL offset

P9 Exception name

You could use ILDASM on P1, search for a MethodDef of 060000xx (where xx is P7), to get the method throwing.

Then use reflector to see the code, view it in IL mode and find the line of IL at P8.

Often it will point you directly to the line that threw the exception.

柠栀 2024-08-20 08:37:45

这通常表示失控的递归调用(有意或无意)。如果没有看到一些代码,很难判断。

This usually points to a runaway recursive call (on purpose or not). Hard to tell without seeing some code.

日裸衫吸 2024-08-20 08:37:45

您的代码可能没有更改,但您的数据很可能已经更改。查看最近添加的任何数据是否会导致出现奇怪的情况。

Your code may not have changed, but chances are your data has. See if any data added recently will cause odd conditions to occur.

他夏了夏天 2024-08-20 08:37:45

您确实需要完整的堆栈跟踪才能弄清楚发生了什么。您是否在任何地方记录异常情况?如果没有,您可以快速 连接事件处理程序

You really need a full stack trace to figure out what's going on. Are you logging your exceptions anywhere? If not, you can quickly wireup an event handler.

嗫嚅 2024-08-20 08:37:45

这是与漏洞解析问题相关的问题。就像我给你提供了一个很好的例子,这样你就可以轻松理解:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AddFunction;

namespace sharat
{
public class Program
{
public class A
{
  public  A()
    {
        object obj = new B();
    }
}
public  class B
{
   public  B()
    {
        object obj = new A();
    }

 }



    public  static void Main(string[] args)

    {
      //  long i = 10;
      //  Console.Write(i.ToString());
      //  object obj = i;
      //  Console.WriteLine(obj.ToString());
      //  i++;

      //Console.WriteLine(i.ToString());
      //i++;
      ////obj = i;
      //Console.WriteLine(obj.ToString());
      //Console.WriteLine(i.ToString());
      //Console.WriteLine(obj.ToString());
      long a = 9;
      long b = 130;

      long d = Add.add(a,b);
        Console.WriteLine(d);
        Console.ReadLine();
        object test = new B();
        Console.WriteLine(d);
     }
    }
   }

This is problem related with loop hole parsing problem. Like I have good example for you,so you can understand easily:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AddFunction;

namespace sharat
{
public class Program
{
public class A
{
  public  A()
    {
        object obj = new B();
    }
}
public  class B
{
   public  B()
    {
        object obj = new A();
    }

 }



    public  static void Main(string[] args)

    {
      //  long i = 10;
      //  Console.Write(i.ToString());
      //  object obj = i;
      //  Console.WriteLine(obj.ToString());
      //  i++;

      //Console.WriteLine(i.ToString());
      //i++;
      ////obj = i;
      //Console.WriteLine(obj.ToString());
      //Console.WriteLine(i.ToString());
      //Console.WriteLine(obj.ToString());
      long a = 9;
      long b = 130;

      long d = Add.add(a,b);
        Console.WriteLine(d);
        Console.ReadLine();
        object test = new B();
        Console.WriteLine(d);
     }
    }
   }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文