进程无法访问终端服务器上的文件c#

时间:2014-09-03 10:58:35

标签: c# terminal-services

我被要求编写programm,从ftp 获取应用程序的文件,然后启动该应用程序。在本地计算机上它工作正常,但在终端服务用户第二次运行时会抛出:该进程无法访问该文件,因为它被另一个进程使用。

此方法更新文件:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using Microsoft.Win32;

namespace fmstart {
    class fmUpd {
        private static  string updFile="fmupdate.inf";
        private static string tmpPath = @"C:\Program Files\SRZNerpa\FinMagic\";

        public static void Update()
        {
            FTPClient ftpCl=new FTPClient(@"ftp://srz-web.nerpa.srz:21/FM2Update/","anonymous", "anonymous");
            FileStream updateStream=File.Create(tmpPath+updFile);
            ftpCl.DownloadFile(updFile,updateStream);
            updateStream.Flush();
            updateStream.Close();
            IEnumerable<string> updFiles=File.ReadLines(tmpPath+updFile);
            foreach (string fileName in updFiles) {
                if (fileName!=String.Empty) {
                    FileStream fs = File.Create(@"C:\Program Files\SRZNerpa\FinMagic\" + fileName.Trim(),1024);
                    ftpCl.DownloadFile(fileName, fs);
                    fs.Flush();
                    fs.Close(); 
                    fs.Dispose();
                    GC.Collect();   
                }
            }             
        }
    }
}

此代码开始已更新App:

fmUpd.Update();
ProcessStartInfo fm = new ProcessStartInfo();
fm.FileName = @"C:\Program Files\SRZNerpa\FinMagic\finmagic.exe";
fm.UseShellExecute = true;
Process Proc = Process.Start(fm);
Application.Exit();

如何使其在终端服务站上运行? 谢谢。

0 个答案:

没有答案