Вопрос : Ошибка: Процесс не может достигнуть архива потому что он используется другим процессом.

hi,

I am using тип «FtpWebRequest» для того чтобы upload архив к дистанционному серверу. Внизу Кодий призывает процесс Upload и после этого уничтожает архив после того как оно uploaded. Я также прикреплял Кодего асинхронно upload архив. Архив получает uploaded отлично но когда он получит к уничтожать архив он бросает исключение «там был проблемой уничтожая архив {0} обнаруженный местонахождение внутри {1}. Процесс не может достигнуть архива потому что он используется другим процессом».
I думает мои попытки Кодего для того чтобы уничтожить архив после того как оно uploaded. Смогите кто-нибудь пожалуйста препятствуйте мне знать куда оно идет неправильно? Возблагодарите состояние you.

bool = AsynchronousFtpUpLoader.Upload (ipaddr, fileName, потребителя, pwd);

если
, то (состояния) {try

{
если (File.Exists, то (fileName))
{
File.Delete (fileName); else


} {
MessageBox.Show (шнур. Format («архив {0} не существует в положении {1}. », Path.GetFileName (fileName), Path.GetDirectoryName (fileName)));
задвижки



}} (исключения x) {
MessageBox.Show (шнур. Format («There было проблемой уничтожая архив {0} обнаруженный местонахождение внутри {1}. \ r \ n \ r \ n {2}», Path.GetFileName (fileName), Path.GetDirectoryName (fileName), x.Message));




}} class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
система " class= " id= " codeSnippet806469
using;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threading;
using System.IO;
using System.Windows.Forms;

namespace FTPProcess
{
    тип FtpState
    {
        приватное ожидание ManualResetEvent;
        приватный запрос FtpWebRequest;
        приватный fileName шнура;
        приватные operationException = null исключения;
        состояние шнура;

        общественное FtpState ()
        {
            ожидание = новое ManualResetEvent (ложное);
        }

        общественное ManualResetEvent OperationComplete
        {
            получите {возвращенное ожидание; }
        }

        общественный запрос FtpWebRequest
        {
            получите {возвращенный запрос; }
            установите {запрос = значение; }
        }

        общественный FileName шнура
        {
            получите {возвращенный fileName; }
            установите {fileName = значение; }
        }
        общественное исключение OperationException
        {
            получите {возвращенное operationException; }
            установите {operationException = значение; }
        }
        общественный шнур StatusDescription
        {
            получите {возвращенное состояние; }
            установите {состояние = значение; }
        }
    }

    общественный тип AsynchronousFtpUpLoader
    {
        общественный статический Upload bool (uploadUrl шнура, fileName шнура, username шнура, pwd шнура)
        {
            waitObject ManualResetEvent;

            попытка
            {
                uri шнура = шнур. Форма («ftp:// {0}/{1}», uploadUrl, Path.GetFileName (fileName));

                Положение FtpState = новое FtpState ();
                Запрос FtpWebRequest = (FtpWebRequest) WebRequest.Create (uri);
                запрос. Метод = WebRequestMethods.Ftp.UploadFile;
                request.EnableSsl = ложно;

                запрос. Документы = новое NetworkCredential (username, pwd);
                положение. Запрос = запрос;
                state.FileName = fileName;

                waitObject = state.OperationComplete;
                request.BeginGetRequestStream (новое AsyncCallback (EndGetStreamCallback), положение);
                waitObject.WaitOne ();

                если (state.OperationException! = null)
                {
                    ход state.OperationException;
                }

                возвращенно true;
            }
            уловите (исключение x)
            {
                MessageBox.Show (шнур. Форма («ошибка пока uploading архив {0}. \ r \ n {1}», fileName, x.Message));
                возвращенное ложное;
            }

        }

        приватное статическое пустое EndGetStreamCallback (IAsyncResult ar)
        {
            Положение FtpState = (FtpState) ar.AsyncState;

            requestStream = null потока;
            Конец // асинхронный звонок для того чтобы получить поток запроса.
            попытка
            {
                requestStream = положение. Request.EndGetRequestStream (ar);
                Экземпляр //, котор архив удовлетворяется к потоку запроса.
                bufferLength int const = 2048;
                буфер байта [] = новый байт [bufferLength];
                readBytes int = 0;
                Поток FileStream = File.OpenRead (state.FileName);
                сделайте
                {
                    readBytes = поток. Прочитано (буфер, 0, bufferLength);
                    requestStream.Write (буфер, 0, readBytes);
                }
                пока (readBytes! = 0);
                requestStream.Close ();
                // асинхронно получает реакцию к запросу upload.
                положение. Request.BeginGetResponse (
                    новое AsyncCallback (EndGetResponseCallback),
                    положение
                );
            }
            Исключения // возвращенные к главной программе продевают нитку.
            задвижка (исключение e)
            {
                MessageBox.Show («не smogл получить запрос stream.");
                state.OperationException = e;
                state.OperationComplete.Set ();
                возвращение;
            }
        }

        // метод EndGetResponseCallback  
        // завершает звонок к BeginGetResponse.
        приватное статическое пустое EndGetResponseCallback (IAsyncResult ar)
        {
            Положение FtpState = (FtpState) ar.AsyncState;
            Реакция = null FtpWebResponse;
            попытка
            {
                реакция = положение. Request.EndGetResponse (FtpWebResponse) (ar);
                реакция. Конец ();
                state.StatusDescription = response.StatusDescription;
                Сигнал // резьба главной программы то 
                // деятельность законченн.
                state.OperationComplete.Set ();
            }
            Исключения // возвращенные к главной программе продевают нитку.
            задвижка (исключение e)
            {
                MessageBox.Show («ошибка получая response.");
                state.OperationException = e;
                state.OperationComplete.Set ();
            }
        }
    }
}
class=

Ответ : Ошибка: Процесс не может достигнуть архива потому что он используется другим процессом.

По мере того как вы вероятее не будете задавать адресы ГЛОТОЧКА с namespace domain.local вам только будет нужно поддержать namespace ГЛОТОЧКА domain.com.  И в виду того что не будет помина сервера края я приму вы планирует внутренне-только раскрытие при CWA опубликованное к интернету к прибавлять на браузер-основанный доступ клиента для внешних потребителей.  Таким образом, здесь вообще обзор минимального числа компонентов, котор вы требовали бы:

1. Одиночный сертификат SSL САН для сервера стандартного варианта с обычный именем установил к FQDN сервера (например ocsserver1.domain.local) и одиночному входу САН «sip.domain.com».

2. Одиночный сертификат SSL САН для сервера доступа стержня (CWA) связиста. См. эту резьбу для больше деталей на использовании одиночного сертификата и для использования MTLS и IIS на сервере CWA:
http://blogs.pointbridge.com/Blogs/schertz_jeff/Pages/Post.aspx?_ID=75

Собственн-подписанные сертификаты нельзя использовать для OCS и не будут работать.
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us