C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.91598 の関連記事表示

<< 0 >>
■91598  VB.NETによるFluentFTPのログセッションについて
□投稿者/ HYDE2019 -(2019/07/12(Fri) 12:10:08)

    分類:[.NET 全般] 

    VB.NETの初心者になります。

    VB.NETでFluentFTPを使って転送しようとしています。
    ログが取得できるため、個別にメール添付で送ろうとしていますが、
    メール添付の際に「System.IO.IOException 別のプロセスで使用されているため・・・」
    のエラーでメール添付が出来ません。
    どうやらFluentFTPのFTPTrace.AddListener がつかんでしまっているようです。

    Class FTP

     FtpTrace.AddListener(New TextWriterTraceListener("D:\LOG.txt"))

     Dim hoge As New FtpClient("ftp://192.168.1.2/") '同じセグメント内のIIS仮サーバーに送っています
     hoge.Credentials = New Net.NetworkCredential("USER","PASSWORD")
     hoge.Connect()
     hoge.UploadFile(itm, "D:\DATA1.txt")
     hoge.Disconnect()

    End Class

    Class Mail

     Dim MSG As New Net.Mail.MailMessage()
     Dim FTPLOG As New Net.Mail.Attachment("D:\LOG.txt")
     MSG.To.Add(New Net.Mail.MailAddress("a@bbb"))
     MSG.Attachments.Add(FTPLOG)
     ・・・

    End Class

    としていますが、
    Dim FTPLOG As・・・でSystem.IO.IOExceptionエラーが発生します。

    すいませんが、FtpTrace.AddListenerのセッションの切り方を教えてください。
    よろしくお願い致します。
親記事 /過去ログ158より / 関連記事表示
削除チェック/

■91599  Re[1]: VB.NETによるFluentFTPのログセッションについて
□投稿者/ はまぐり -(2019/07/12(Fri) 13:06:49)
    No91598 (HYDE2019 さん) に返信
    
    Usingで囲ってみるとか
    
    Using listener As New TextWriterTraceListener("D:\LOG.txt")
     FtpTrace.AddListener(listener)
    
     Dim hoge As New FtpClient("ftp://192.168.1.2/") '同じセグメント内のIIS仮サーバーに送っています
     hoge.Credentials = New Net.NetworkCredential("USER","PASSWORD")
     hoge.Connect()
     hoge.UploadFile(itm, "D:\DATA1.txt")
     hoge.Disconnect()
    End Using
記事No.91598 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91600  Re[2]: VB.NETによるFluentFTPのログセッションについて
□投稿者/ はまぐり -(2019/07/12(Fri) 13:10:16)
    No91599 (はまぐり さん) に返信
    
    RemoveListenerも必要かも
    順番は
    
    Listener作成
      AddListener
      RemoveListener
    Lintener破棄
    
記事No.91598 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91601  Re[3]: VB.NETによるFluentFTPのログセッションについて
□投稿者/ Hongliang -(2019/07/12(Fri) 13:29:37)
    適切なFileShareを与えたFileStreamを使うのが良いかと。
    
    New TextWriterTraceListenerの引数に
    New FileStream(path, FileMode.Append, FileAccess.Write, FileShare.Read)
    ' FileMode.AppendかFileMode.Createかは利用者さん次第ですが
    
    New Attachmentの引数に
    New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Write)
    
    なお、メールを送信した後のMailMessageを確実にDisposeするために以下のようにすべきです。
    Using msg As New MailMessage
      ' なんやらかんやら
      smtp.Send(msg)
    End Using
    これでAttachmentに設定したFileStreamも自動的にDisposeされます。
記事No.91598 のレス /過去ログ158より / 関連記事表示
削除チェック/

■91603  Re[4]: VB.NETによるFluentFTPのログセッションについて
□投稿者/ HYDE2019 -(2019/07/12(Fri) 13:53:50)
    □はまぐりさん、ありがとうございます。

     両方ともに実行してみたところ、両方ともにセッションが切れました。
     ありがとうございました!
     宣言の仕方も大変勉強になりました。



    □Hongliangさん、ありがとうございます。

     なるほど、メールもUsingでしっかりと切った方がよいのですね。
     とっても勉強になりました。



    ※お二人方、スピーディなご投稿をありがとうございました。
     2日悩んでいたものが、一瞬で解決しました。
     本当にありがとうございました。
     また分からないことがありましたら、是非とも教えてください。

     感謝申し上げますm(_ _)m




    No91601 (Hongliang さん) に返信
    > 適切なFileShareを与えたFileStreamを使うのが良いかと。
    >
    > New TextWriterTraceListenerの引数に
    > New FileStream(path, FileMode.Append, FileAccess.Write, FileShare.Read)
    > ' FileMode.AppendかFileMode.Createかは利用者さん次第ですが
    >
    > New Attachmentの引数に
    > New FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Write)
    >
    > なお、メールを送信した後のMailMessageを確実にDisposeするために以下のようにすべきです。
    > Using msg As New MailMessage
    > ' なんやらかんやら
    > smtp.Send(msg)
    > End Using
    > これでAttachmentに設定したFileStreamも自動的にDisposeされます。


    >■No91599 (はまぐり さん) に返信
    >
    >RemoveListenerも必要かも
    >順番は
    >
    >Listener作成
    > AddListener
    > RemoveListener
    >Lintener破棄
記事No.91598 のレス / END /過去ログ158より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -