Ntvdm.exe NTVDM CPU遇到非法指令

Ntvdm.exe NTVDM CPU遇到非法指令,ntvdm.exe,Ntvdm.exe,我遇到了一个我不理解的相当奇怪的错误。我创建了一个C#console应用程序,该应用程序旨在测试我的web服务是否在网络之外工作。它所做的只是尝试连接到webservice,将每个阶段输出到控制台,并将其写入文本文件,以便他们可以向我发送日志 它在3台XP机器(一台在我的网络内部,两台在外部)上运行得非常好。Vista机器(有一个清单文件)但在我的Boss XP机器上(他是一个IT人员,所以知道他在做什么),它抛出了一个非常奇怪的错误 C:\temp\testwe~1.exe NTVDM CPU

我遇到了一个我不理解的相当奇怪的错误。我创建了一个C#console应用程序,该应用程序旨在测试我的web服务是否在网络之外工作。它所做的只是尝试连接到webservice,将每个阶段输出到控制台,并将其写入文本文件,以便他们可以向我发送日志

它在3台XP机器(一台在我的网络内部,两台在外部)上运行得非常好。Vista机器(有一个清单文件)但在我的Boss XP机器上(他是一个IT人员,所以知道他在做什么),它抛出了一个非常奇怪的错误

C:\temp\testwe~1.exe NTVDM CPU遇到非法指令

http://www.houseofhawkins.com/roger.jpg“>

我在谷歌上搜索了一下,似乎他的NTVDM可能被窃听了,或者是有病毒什么的。这些似乎都不是真的。我看不出会发生什么事情导致它以这种方式失败

使用制度; 使用System.Collections.Generic; 使用系统文本; 使用System.IO

命名空间testwebservice { 班级计划 { FileStream theFile=null; StreamWriter=null

    static void Main(string[] args)
    {
        Program p = new Program();
        p.testMe();
    }

    private void testMe()
    {
        Console.WriteLine("Entered main method about to create stream");            
        try
        {
            theFile = File.Create(@"jonTestWebService.log");
            writer = new StreamWriter(theFile);
            writer.AutoFlush = true;

            try
            {
                message("Starting test at: " + DateTime.Now.ToLongTimeString());

                Random rand = new Random();

                message("creating new instance of webservice");
                houseofhawkins.testweb webServ = new testwebservice.houseofhawkins.testweb();

                message("calling hello world");
                String helloResult = webServ.HelloWorld();
                message("hello world result = " + helloResult);

                int one = rand.Next(999);
                int two = rand.Next(999);
                message("calling maths method with " + one + " + " + two);
                String mathResult = webServ.mytestMethod(one, two);
                message("Math result is: " + mathResult);



                message("Creating instance of CSJawbreaker");
                CSJawbreaker.InformationService csj = new testwebservice.CSJawbreaker.InformationService();

                message("trying to get the latest version number");
                float version = csj.latestVersionNumber();
                message("Version number: " + version.ToString());

                message("");
                message("Finished all processing at: " + DateTime.Now.ToLongTimeString());
            }
            catch (Exception ex)
            {
                writer.WriteLine("");
                writer.WriteLine(ex.Message);
                writer.WriteLine("");
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("could not create stream Writer, " + ex.Message);
        }

        message("");
        message("Press return to exit");
        Console.ReadLine();

        writer.Close();
        theFile.Close();
    }

    private void message(String message)
    {
        if (theFile != null && writer != null)
        {
            Console.WriteLine(message);
            writer.WriteLine(message);
        }
    }
}
}

我很困惑为什么上面的代码可以/会这样做。这是我想知道的,部分原因是,这会发生在一台真正的客户机上,或者只是我的老板的机器被感染了还是什么的


谢谢你

如果你最终进入了NTVDM,那就大错特错了,因为这是XP的16位DOS仿真层。如果在你重新复制EXE后再次发生这种情况,我会调查你老板电脑上安装的软件(.NET framework版本,等等)


我也会尝试在WinDbg中运行此程序,以查看最终结果,在出现故障时获取调用堆栈等,我打赌您会在堆栈上发现一个奇怪的模块(间谍软件等)。

看起来EXE文件已损坏。我认为他尝试了一份具有相同效果的EXE副本,(不同版本,添加了更多日志记录以尝试获得答案)。我将尝试调试。谢谢