用于远程收集文件的.Net服务

时间:2013-07-16 19:20:35

标签: c# service .net-4.0 remote-access

我的任务是创建远程(在网络上)通过其计算机名称或IP地址访问其他PC的服务,并在一小时内从预定的文件夹中收集日志文件。这必须在后台完成,系统托盘图标允许用户调出菜单以更改日志收集频率,更改计算机收集和保存位置。无论出于何种原因,我很难找到入门资源,我不太清楚要搜索什么,但我想知道如何设置服务以允许通信/远程访问另一台计算机上的目录在它的网络中。如果答案很明显,我很抱歉,这是我第一次使用我自己的软件在计算机之间进行任何远程操作,但如果有人有资源或链接,我会很感激!

注意:我已查看Use .NET Remoting to transfer a file?但不清楚这是否有用

1 个答案:

答案 0 :(得分:2)

您不需要远程处理。您需要做的就是在远程计算机上设置共享,以便您可以通过网络访问其文件。因此,例如,如果远程计算机被称为SITHLORD,并且目录是C:\ SomeApp \ LogFiles。 。

首先,在SITHLORD计算机上,确保已启用文件共享,然后共享该目录。称之为LogFiles。

在将运行该服务的计算机上,您应该能够通过在命令提示符下键入以下命令从命令行访问这些文件:

dir \\SITHLORD\LogFiles

如果您收到错误,则必须先解决此问题,然后才能继续。

在能够从命令行查看文件之后,您可以编写C#代码来扫描目录并读取文件。所有标准.NET文件操作(Directory.GetFilesFile.Open等)都适用于网络路径。因此,您可以使用以下命令复制该目录中的文件“MyLogFile1.log”:

File.Copy(@"\\SITHLORD\LogFiles\MyLogFile1.log", @".\Archive\SithLord\MyLogFile1.log");

那就是说,你正在谈论的事情听起来像是你最好用PowerShell脚本和计划任务做的事情,用C#程序来改变脚本的配置和修改任务配置。编写Windows服务来执行此操作似乎有点过头了。

但是如果您决定编写Windows服务,那么您只需要简单的文件操作。