Ne peut pas évaluer l'expression, car un natif image est sur le dessus de la pile des appels

Je suis la création d'un simple service de fenêtre et quand je vais pour déboguer j'ai l'erreur "Impossible d'évaluer l'expression parce qu'un natif image est sur le dessus de la pile d'appel.". Aussi, lorsque je construis le service de presse et d'exécuter se bloque.

 static void Main()
    {
        ServiceBase[] ServicesToRun;
        ServicesToRun = new ServiceBase[] { new MyService1() };

        ServiceBase.Run(ServicesToRun);
    }

C'est tout ce qui est dans le Programme.cs fichier, où il est généralement accroché sur le ServiceBase.Exécuter(ServicesToRun).

Tout ce que j'ai pu trouver se rapporte uniquement à l'expression n'étant pas évalué parce que le code est optimisé ou d'avoir à traiter avec asp.net et la réponse.rediriger.

Code pour le Service.

    public TruckRateClearService()
    {
        InitializeComponent();
    }

    protected override void OnStart(string[] args)
    {
        tmrProcess.Enabled = true;
    }

    protected override void OnCustomCommand(int command)
    {
        base.OnCustomCommand(command);
        if (command == 129)
        {
            OnStart(null);
        }
    }

    protected override void OnStop()
    {
        tmrProcess.Enabled = false;
    }

    private void tmrProcess_Tick(object sender, EventArgs e)
    {
        tmrProcess.Enabled = false;

        try 
        {
            eventLog.WriteEntry("Clearing Truck Rates Start" + DateTime.Now.ToString());

            TruckRateClearingAgent.Process();

            eventLog.WriteEntry("Clearing Truck Rates Finished" + DateTime.Now.ToString());
        }
        catch (Exception ex)
        {
            eventLog.WriteEntry(ex.ToString(), EventLogEntryType.Error);
        }

        tmrProcess.Enabled = true;
    }

    internal void Run()
    {
        tmrProcess_Tick(tmrProcess, null);
    }

Interne Void Run() a été ajouté récents sur la suggestion dans les commentaires par Eren Ersönmez. Son idée a été très utile pour aider à déboguer ma logique, jusqu'à ce que je peux comprendre le reste.

J'ai été en mesure d'obtenir les dans l'appel des Indigènes de la pile et il est assis sur un emplacement, 76F17094 ret. Maintenant, je n'ai aucune idée de ce que c'est, mais peut-être quelqu'un d'autre le fera.

Aussi, lorsque je démarre le service et de regarder en l'attachant à VS je m'aperçois deux instances. L'une est la normale .exe et en est un autre .vshost.exe. Quand j'ai commencer à d'autres services, je ne vois que de la .exe fichier dans l'Attacher au processus partie du débogueur. Serait-ce parce que l'on est sur la v4 Cadre .vshost .exe de service ) et un autre sur la v2 ( single .exe service ) Cadre?

Je crois que je l'ai eu à travailler. Il semble que le problème a menti à la minuterie, j'ai été à l'aide. L'original de la minuterie j'ai été en utilisant un Système.De Windows.Les formes de la minuterie. Je l'ai mis au Système de.Les minuteries.Minuteries et tout a commencé à travailler à nouveau. Encore cant VS joindre à elle, mais je peux le corriger encore en utilisant le méthode Run (). Merci pour toute l'aide n.n

OriginalL'auteur Tim B | 2012-06-01