Windowsサービスアプリケーションを開発しました。このサービスは、filewatcherを開始し、作成されている.csvファイルをリッスンしてから、そのファイルを処理するだけです。以前は監視にアプリケーションフォルダを使用していましたが、アプリケーションルートディレクトリ内のファイルをコピーするにはセキュリティ権限が必要なため、パスをマイドキュメントフォルダに変更することにしました。インストールプロセス中にインストーラーが完了すると、マイドキュメントフォルダーの下にProductNameフォルダーが作成されます。(アーカイブフォルダーもProductNameフォルダーの下に作成されます。)インストール後、My Documents \ ProductName \Archive\のような構造になります。
サービスを開始しようとすると停止し、イベントビューア内に表示される唯一の例外は次のとおりです。
例外情報:System.ArgumentExceptionスタック:System.IO.FileSystemWatcher.set_Path(System.String)で
public partial class ServiceName : ServiceBase
{
private readonly IMachineResultProcessos _controler;
private readonly FileSystemWatcher _watcher;
private readonly string _rootpath = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.MyDocuments),"ProductName");
public ServiceName()
{
InitializeComponent();
_controler = new DataProcessos();
_watcher = new FileSystemWatcher
{
Path = _rootpath + @"\Archive",
Filter = "*.csv"
};
_watcher.Created += OnFileCreated;
_watcher.EnableRaisingEvents = true;
}
}
デバッグ下で動作しますが、クライアントマシンにデプロイするときに問題があります。
任意の提案やアイデアを歓迎します。