2016-04-30 31 views
2

すべてHy、私はこのフォーラムで初心者です、私はイタリア語です。まず第一に、私は言語の間違いをお詫びします。また、読書の返信は、国の時間が異なるために時間がかかることがあります。VB .NET FileSystemWatcherはrdp接続でイベントを起動しません

設定:VB .NET 2008 PROとVB .NET 2008のExpressの

私の2デスクトップPC:1はWinXPのSP3で、1はサーバー Win7のSP1

あります。Windows 2008 R2エンタープライズ

.NETフレームワーク:3.5 SP1

私はサーバー2008で動作するWinFormsアプリケーションを開発しました。私は、ファイルシステムウォッチャー(FSW)コンポーネントを使用して、接続されたPC上にあるフォルダのファイル削除に関する通知を受け取ります。接続はリモートデスクトップ(RDP)によるものです。ユーザーがアプリケーションを使用してこのフォルダのファイルを削除すると、PC上のこのファイルとファイルが実際に削除されます。私はFSWにイベントを通知する必要があります。コードにエラーはありません。単にFSWがイベントを起動しないため、PCからの通知はありません。 FSWのコード(以下に貼り付ける)は実行されません。 lvwDocFilesはListViewです。

Private Sub fswFiles_Deleted(ByVal sender As Object, ByVal e As System.IO.FileSystemEventArgs) Handles fswFiles.Deleted 

    Try 
     lvwDocFiles.Items.RemoveByKey(e.FullPath) 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 

End Sub 

FSWは、ユーザーが削除すると起動され、実行されます。上記のコードは、ユーザーがローカルフォルダ(サーバー上のフォルダ)上のファイルを削除するときに実行されるため、この場合、FSWはイベントを正しく発生させます。私はすでに、次のポストを見てきました

は(6年前に尋ねた):

FileSystemWatcher Fails to access network drive

が、C#であると私の状況は異なっています。私はこれの可能な理由のためだと思う私の心の中で

:PC上で

  1. 特定のサービス実行している必要がありますか?たとえば、警告サービスを開始しようとしましたが、何も変更されません。
  2. 権限:しかし、ファイルは削除されています(DELコマンドはサーバ上のアプリケーションから起動し、PCに正しく到着します)
  3. 通知はPCから始まりますが、RDP接続を通過しませんか?
  4. PCで通知が開始されませんか?私はこの点と前の点についてどのように調査するのか分かりません(具体的なプログラムが必要ですか?)

ご意見は高く評価されます。

おかげで、すべての
ステファノ私はこのように私の問題を解決した

+0

あなたの3ページを、間違ったことに関する短い関連情報にまとめられますか?あなたの問題がファイルシステムウォッチャーの間にリストビューについてラップしているのはなぜですか?入力したすべての行で、実行中にエラーの詳細を提示できませんでした。どのコード行で失敗するのか、エラーメッセージは何ですか?他のコードを使わずにこれらの行を新しいプロジェクトに入れて、問題が他のものとなっていることを証明してください。 – Lectere

+0

Hy Lectere、ご意見ありがとうございます。私はその投稿を書き直しました。今はっきりしていることを願っています。私はコードにエラーがないので、何も投稿できません。単にFSWはMicrosoftがMSDNで宣言しているようには機能しないようです(...リモートコンピュータでも動作します...) – Steve55

+0

FSWにはいくつかの欠点があります。それは 'Error'イベントを通してエラーを報告しますか?また、イベント処理コードはできるだけ速くする必要があります。通知が欠落している可能性もあります。 'MessageBox.Show()'はブロックしています。あなたのネットワークはトラフィックが多いですか? – Norman

答えて

1

: - 削除されたFSWプロジェクト から - を追加しました2つのカスタムイベント、最初の(FileChangeEvent)ファイルの子フォームから引き上げられます子プロセスで削除が発生し、カスタムeventargsを介してこれを親フォームに通知します。 1つの子(必ずしも削除が発生するとは限りません)のすべてのアクティブな子(同じフォームのすべてのインスタンス)と通信するために、2番目の子(ChildUpdateList)が親によって呼び出されます。これは、リモートフォルダ上のファイルの削除も制御するシンプルで優れたソリューションです(この状況ではFSWは機能しません)。すべてのことに

おかげで、私が解決するためのトレースを発見し、ディエゴCattaruzza(MVP)Visual-Basic.itにきているコリン・アンガス・マッケイブログPassing Data Between Formsへのコメントや特別な感謝を与え、私は大幅に簡素化するために役立つこと(それはイタリア語であり申し訳ありません)コリン溶液。

ステファノ

関連する問題