Я работаю над требованием, которое имеет следующую логику.код находится в C # и .NET CF 3.5
Загрузка некоторых файлов с мобильного устройства на веб-сервер.
, если загрузка прошла успешнофайл перемещается в архивную папку на мобильном устройстве.
Загрузка некоторых файлов с сервера на мобильное устройство.
Когдазагрузка прошла успешно, файл необходимо переместить в заархивированную папку на стороне сервера, чтобы не загружать тот же файл снова.
Написал веб-службу (asmx)справиться с этой операцией.Загрузка и загрузка работает нормально.
Веб-служба использует функцию FileInfo.MoveTo () для перемещения файла из загруженной папки в архивы на веб-сервере.
Это работает локально нормально (когда веб-служба и клиент, вызывающий веб-службу, размещены на одном компьютере), но при развертывании на сервере я получаю сообщение «процесс не может получить доступ к файлу, поскольку он используется другим процессом».
Я дал необходимые разрешения учетной записи IIS на стороне сервера.Я хотел бы знать, можно ли вообще этого добиться с мобильного устройства или есть какой-либо другой способ вызвать этот вызов на мобильном устройстве.Мне нужно выполнить этот метод сразу после загрузки файла.
Пример кода прилагается.
fileEntriesD = SomeWebService.FilesList();
string[] extractedFiles = fileEntriesD.Split(',');
foreach (string fileName in extractedFiles)
{
//dothe file downloading
//code comes here.......
}
//move the file on the server once all the files are downloaded
foreach (string DumpfileName in extractedFiles)
{
//after the download is complete move the file to the archived folder
string MoveFileOnServerStatus;
MoveFileOnServerStatus = SomeWebService.MoveFileToArchive(DumpfileName);
MessageBox.Show(MoveFileOnServerStatus);
}
код для WebMethod для MoveFileToArchive (DumpfileName)
[WebMethod(Description="move the file to the archive location")]
public string MoveFileToArchive(string fileArchiveName)
{
try
{
string SerPathD = GetLocationOfFiles + "\\" + "ArchivedDispatchedFiles";
FileInfo MFTA = new FileInfo(SerPathD + "\\" + fileArchiveName);
MFTA.MoveTo(SerPathD + "\\" + fileArchiveName);
}
catch(IOException ex)
{
//if there is any error then return the error message.
return ex.Message.ToString();
}
//if the moving was successful then return 1 to the client.
return "1";
}