2 Stimmen

ReleaseHandleFailed-Ausnahme

Ich habe gerade die folgende blutige MDA-Ausnahme bei einem recht einfachen kleinen Programm erhalten:

Ein SafeHandle oder CriticalHandle vom Typ 'Microsoft.Win32.SafeHandles.SafeCapiHashHandle' konnte das Handle nicht ordnungsgemäß freigeben mit dem Wert 0x004E48C0 freigeben. Dies bedeutet normalerweise darauf hin, dass das Handle auf andere Weise auf andere Weise falsch freigegeben wurde (z. B. durch Extrahieren des Handles mit DangerousGetHandle extrahiert und es geschlossen direkt schließen oder ein anderes SafeHandle um es herum).

So etwas habe ich noch nie gesehen. Mein Programmcode ist:

public partial class SmsEditorForm : Form
{
    public SmsEditorForm()
    {
        InitializeComponent();
    }

    private void SmsEditorForm_Load(object sender, EventArgs e)
    {          
        using (var ents = new TemplateEntities())
        {
            templateCombo.DataSource = ents.NotificationTemplates.OrderBy(nt => nt.TemplateName).ToList();
            jobCardCombo.DataSource = ents.JobCards.Where(jc => !jc.JobDeleted && !jc.Archived).ToList();
        }
    }

    private void smsText_TextChanged(object sender, EventArgs e)
    {
        charCountLabel.Text = smsText.Text.Trim().Length.ToString();
    }

    private void templateCombo_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (var ents = new TemplateEntities())
        {
            smsText.Text = ents.NotificationTemplates.Single(nt => nt.TemplateId == (int) templateCombo.SelectedValue).ExternalRecipientSms;
        }
    }
}

3voto

Stephen Cleary Punkte 402664

Sieht nach einem Problem in Ihrer SMS-Bibliothek aus. Insbesondere der Teil des Codes, der SafeCapiHashHandle (dies ist ein Verschlüsselungshandle, so dass z. B. die Verwendung eines Webdienstes über SSL dies verursachen würde).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X