2010-08-18 1 views
2

나는 바로이 피 묻은 오히려 간단한 작은 프로그램에 대한 MDA 예외 다음 가지고있다 : 유형의ReleaseHandleFailed 예외

하여 SafeHandle 또는 CriticalHandle 'Microsoft.Win32.SafeHandles.SafeCapiHashHandle' 제대로 핸들을 해제하는 데 실패 값이 0x004E48C0 인 이것은 일반적으로 핸들이 다른 수단을 통해 잘못 을 발표 한 것을 나타냅니다 (예 : DangerousGetHandle를 사용하여 핸들을 추출하고 직접이 닫거나 주위 다른 하여 SafeHandle을 구축 한다.)

내가 좋아하는 것을 본 적이 없다 이. 내 프로그램 코드는 다음과 같습니다 :

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; 
     } 
    } 
} 

답변

3

SMS 라이브러리에 문제가있는 것 같습니다. 특히 코드의 어느 부분이든 SafeCapiHashHandle을 사용합니다 (암호화 핸들이므로 SSL을 통한 웹 서비스를 사용하면이 문제가 발생합니다).

+0

아니요. SMS 서비스는 웹 서비스이며, 오류 대화 상자에서 계속을 클릭하면 계속해서 SMS를 완벽하게 보냅니다. – ProfK

+1

업데이트 된 답변보기 –