Fråga : Fel: Det processaa kan inte ta fram spara, därför att den används av ett annat processaa.

hi förmiddagen för

I using ”FtpWebRequest” klassificerar för att upload en spara till en avlägsen server. Det nedanfört kodifierar åkallar den processaa uploaden och tar därefter bort spara, efter den har uploaded. Jag har också fäst kodifiera som upload asynkront en spara. Spara får uploaded fint, men, när den får till att ta bort spara, den kastar undantaget ”där var ett problem som tar bort spara {0} som in lokaliseras {1}. Det processaa kan inte ta fram spara, därför att den används av ett annat processaa”. den min funderare för
I kodifierar försök att ta bort spara, efter den har uploaded. Kan vem som helst behaga låter mig veta var den går orätt? Tacka status = AsynchronousFtpUpLoader.Upload (ipaddr, fileNamen, användaren, pwd) för you.

bool;

, om
{try
{
(för status) för
om (File.Exists (fileNamen))
{
File.Delete (fileName); else
{
MessageBox.Show, för
för
} (stränga. Format (”spara {0} inte finns i läget {1}. ”, , Path.GetDirectoryName (fileName) för Path.GetFileName (fileName)));
för

för
}} fångar (undantag x)
{
MessageBox.Show (stränga. Format (”There var ett problem som tar bort spara {0} som in lokaliserades {1}. \ r \ n \ r \ n {2}”, , Path.GetDirectoryName (fileName), x.Message) för Path.GetFileName (fileName));


för
för
}} > för
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:
" codeBody " system för class= för 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 { klassificera FtpState { privat ManualResetEvent väntan; privat FtpWebRequest förfrågan; privat stränga fileNamen; privat undantagsoperationException = ogiltigt; stränga status; offentliga FtpState () { väntan = (falska) nya ManualResetEvent; } offentliga ManualResetEvent OperationComplete { få {återgång väntan; } } offentlig FtpWebRequest förfrågan { få {återgång förfrågan; } uppsättning {förfråganen = värderar; } } allmänhet stränger FileName { få {återgång fileName; } uppsättning {fileNamen = värderar; } } offentligt undantag OperationException { få {återgång operationException; } uppsättning {operationExceptionen = värderar; } } allmänhet stränger StatusDescription { få {återgång status; } uppsättning {status = värderar; } } } allmänhet klassificerar AsynchronousFtpUpLoader { offentlig statisk elektricitetboolUpload (stränga uploadUrl, stränger fileName, stränger username, stränger pwd), { ManualResetEvent waitObject; försök { stränga urien = stränger. Formaterar (”ftp:// {0}/{1}”, uploadUrl, Path.GetFileName (fileNamen)); FtpState statliga = nya FtpState (); FtpWebRequest förfrågan = (FtpWebRequest) WebRequest.Create (uri); förfrågan. Metod = WebRequestMethods.Ftp.UploadFile; request.EnableSsl = falskt; förfrågan. Vitsord = nya NetworkCredential (username, pwd); statligt. Förfrågan = förfrågan; state.FileName = fileName; waitObject = state.OperationComplete; request.BeginGetRequestStream (nya AsyncCallback (EndGetStreamCallback), påstår); waitObject.WaitOne (); om (state.OperationException! = ogiltigt) { kast state.OperationException; } återgångt true; } fånga (undantag x) { MessageBox.Show (stränga. Formatera (”felstunder som uploading spara {0}. \ r \ n {1}”, fileName, x.Message)); återgångt falskt; } } privat statisk elektricitet utan laga kraft EndGetStreamCallback (IAsyncResult ar) { Statliga FtpState = (FtpState) ar.AsyncState; Strömma requestStream = ogiltigt; // avslutar den asynkrona appellen för att få förfråganen strömmer. försök { requestStream = påstår. Request.EndGetRequestStream (ar); // kopierar spara tillfredsställer till förfråganen strömmer. constint-bufferLength = 2048; byten [] fungera som buffert = den nya byten [bufferLength]; int-readBytes = 0; FileStream strömmer = File.OpenRead (state.FileName); gör { readBytes = strömmer. Läst (fungera som buffert, 0, bufferLength); requestStream.Write (fungera som buffert, 0, readBytes); } stunder (readBytes! = 0); requestStream.Close (); // får asynkront svaret till uploadförfråganen. påstå. Request.BeginGetResponse ( nya AsyncCallback (EndGetResponseCallback), statligt ); } // återgånga undantag till den huvudsakliga applikationen dragar. fånga (undantag e) { MessageBox.Show (”inte kunde få förfråganen strömmer. ”); state.OperationException = e; state.OperationComplete.Set (); retur; } } // den EndGetResponseCallback metoden // avslutar en appell till BeginGetResponse. privat statisk elektricitet utan laga kraft EndGetResponseCallback (IAsyncResult ar) { Statliga FtpState = (FtpState) ar.AsyncState; FtpWebResponse svar = ogiltigt; försök { svaret = (FtpWebResponse) påstår. Request.EndGetResponse (ar); svar. Nära (); state.StatusDescription = response.StatusDescription; // signalerar den huvudsakliga applikationtråden det // funktionen är färdig. state.OperationComplete.Set (); } // återgånga undantag till den huvudsakliga applikationen dragar. fånga (undantag e) { MessageBox.Show (”fel som får svar. ”); state.OperationException = e; state.OperationComplete.Set (); } } } }
" klar "

Svar : Fel: Det processaa kan inte ta fram spara, därför att den används av ett annat processaa.

Som du ska troligen för att inte tilldela, SMUTTEN tilltalar med domain.local-namespacen som du ska endast behov att stötta den domain.com SMUTTnamespacen.  Och, sedan det inte finns någon omnämnande av en kantaserver, jag ska antar att du planerar en inre-endast utplacering med CWA som publiceras till internet för att låta för webbläsare-baserad beställare tar fram för yttre användare.  Således är här en allmän överblick av minimien numrerar av delar som du skulle kräver:

1. Ett certifikat för singelSSL SAN för den standarda upplagaserveren med den kända uppsättningen för allmänning till serverens FQDN (e.g. ocsserver1.domain.local) och ett singelSAN-tillträde av ”sip.domain.com”.

2. Ett certifikat för singelSSL SAN för meddelarerengöringsduken tar fram (CWA) serveren. Se att denna tråd för mer specificerar på att använda ett singelcertifikat för både MTLS- och IIS-användning på CWA-serveren:
http://blogs.pointbridge.com/Blogs/schertz_jeff/Pages/Post.aspx?_ID=75

Själv-undertecknade certifikat kan inte användas för OCS och ska inte arbete.
Andra lösningar  
 
programming4us programming4us