2016-05-26 18 views
0

にアクセスできません:プロセスは、私は、次のコード(またはその同等)を持つ添付ファイル

var provider = new System.Net.Http.MultipartFormDataStreamProvider([...]); 
try 
{ 
    if (provider.FileData.Count != 0) 
    { 
     foreach (System.Net.Http.MultipartFileData file in provider.FileData) 
     { 
      Trace.WriteLine(file.Headers.ContentDisposition.FileName); 
      Trace.WriteLine("Server file path: " + file.LocalFileName); 

      AddAttachment(file.LocalFileName, file.Headers.ContentDisposition.FileName.Replace("\"", "")); 

      if (attachmentPaths.Length != 0) 
      { 
       attachmentPaths += ";"; 
      } 
      attachmentPaths += file.Headers.ContentDisposition.Name.Replace("\"", ""); 
     } 
    } 
} 
catch (Exception ex) 
{ ... } 

... 
public void AddAttachment(string attachmentFileName, string attachmentName) 
{ 
    var AttachmentList = new List<System.Net.Mail.Attachment>(); 

    System.Net.Mail.Attachment newAttachment = new System.Net.Mail.Attachment(attachmentFileName); 
    newAttachment.Name = attachmentName; 
    AttachmentList.Add(newAttachment); 
} 

そして私は「プロセスはファイルにアクセスできません取得しています...それは別で使用されているため、プロセスエラーです。私はちょうど私のアプリケーションがエラーを取得する可能性があります知っていると思います。私はここで実際にファイルにアクセスしようとしている場所を知ることができません。私の推測はAttachmentコンストラクタにありますが、わかりません。

+0

サイドノート:どのようにトリガーするのか分かりません。夜間の電子メール処理中に起きているので、ログにエラーが表示されます。私はむしろ、エラーをより良く処理するために修正する以外に、プログラムに何も変更を加えることはしません。つまり、私はそれをデバッグできるとは思わない。 – BCarpe

+0

それはかなり正常な事故です。プログラムにバグがあり、ファイルを閉じたり破棄したりしていない可能性があります。例外と同様に、他のプロセスもファイルを開いている可能性があります。アンチマルウェアがファイルをスキャンするまでアクセスをブロックするためである可能性があります。それを絞り込むのはあなた次第です。大声でアラートを発することで、マシンを素早く検査できるようになります。 –

+0

コメントありがとう、Hans。私はそのファイルが他の何かによって使用されていることを理解しています。私が理解できないことは、上のコードでアクセスしようとしているところです。私が知る限りでは、読み込み、書き込み、削除は一切行っていません。 – BCarpe

答えて

0

私はデバッガでテストする方法を見つけ出すことができました。答えは「はい」でした.System.Net.Mail.Attachmentコンストラクターはファイルにアクセスしようとしていました。

関連する問題