Frage

Ich habe einen ziemlich seltsam Fehler aufgetreten, die ich nicht verstehe. Ich habe Konsolenanwendung eine C #, die gerade entworfen wurde ein Test, um zu sehen, ob mein Web-Service wurde von außerhalb meines Netzwerkes arbeiten. Alles, was es tat, war zu versuchen und zu dem Webservice, Ausgang jede Stufe an die Konsole und schreibt sie in eine Textdatei zu verbinden, damit sie mir die Protokolle schicken könnten.

Es funktionierte perfekt auf 3 XP-Maschinen (eine in meinem Netzwerk, 2 außen). Ein Vista-Rechner (hatte eine Manifest-Datei), aber auf meine Chefs XP-Rechner (er ist ein IT-Mann so weiß, was er tut), ist es eine sehr seltsame Fehler warf.

C: \ temp \ testwe ~ 1.exe Die NTVDM-CPU hat eine ungültige Anweisung aufgetreten

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

Ich habe einige googeln und es schien, als ob seine NTVDM buggered worden sein könnte, oder es gab einen Virus oder so etwas. Keiner von ihnen scheint der Fall zu sein. Ich kann nicht sehen, was dies verursachen würde geschehen so zum Scheitern verurteilt.

using System; Verwendung System.Collections.Generic; Verwendung System.Text; using System.IO;

Namespace Testwebservice {     Klasse-Programm     {         Filestream thefile = null;         Streamwriter writer = 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);
        }
    }
}

}

Ich bin sehr fest, warum der obige Code könnte / würde dies tun. Es ist eine Art nur mag ich wissen, und teilweise, könnte dies zu einer echten Kunden Maschine passieren, oder einfach nur ist mein Chef Maschine infizierte oder so etwas.

Danke

War es hilfreich?

Lösung

Etwas ist sehr falsch, wenn Sie in NTVDM enden, wie dies die 16-Bit-DOS-Emulationsschicht für XP ist. Wenn dies wieder geschieht, nachdem Sie die EXE-Datei über recopy, würde ich die Software auf Ihrem Chef PC (.NET Framework-Version, etc.) installiert untersuchen.

Ich würde versuchen, dies auch in WinDbg laufen, um zu sehen, wo Sie am Ende, einen Call-Stack erhalten, sobald es Fehler aus etc, ich wette, Sie werden ein seltsames Modul auf dem Stack finden (Spyware, etc).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top