Доброго времени суток!
В процессе работы с Exchange Server 2003 посредством WebDAV был выявлен следующий интересный момент: иногда этот код (предназначеный для получения локализованного имени папки Inbox (f.e. Входящие))
System.Net.ServicePointManager.CertificatePolicy =
new AcceptAllCertificatePolicy();
strBody =
"<?xml version='1.0' encoding='utf-8'?>";
strBody +=
"<a:propfind xmlns:a='DAV:' xmlns:h='urn:schemas:httpmail:'>";
strBody +=
"<a:prop><h:inbox/></a:prop></a:propfind>";
Request = (System.Net.HttpWebRequest)HttpWebRequest.Create(mailboxRoot);
Request.Credentials =
new NetworkCredential(LinkageSystemUserName, LinkageSystemUserPass, ExchangeServerDomain);
Request.Method =
"PROPFIND";
Request.PreAuthenticate =
true;
Request.ServicePoint.Expect100Continue =
false;
Request.ServicePoint.UseNagleAlgorithm =
false;
bytes = System.Text.Encoding.UTF8.GetBytes(
strBody);
Request.ContentLength = bytes.Length;
RequestStream = Request.GetRequestStream();
RequestStream.Write(bytes, 0, bytes.Length);
RequestStream.Close();
Request.ContentType =
"text/xml";
Request.Headers.Add(
"Depth", "0");
Response = (HttpWebResponse)Request.GetResponse();
Stream ReceiveStream = Response.GetResponseStream();
System.Text.Encoding encode = System.Text.Encoding.GetEncoding(
"utf-8");
StreamReader sr =
new StreamReader(ReceiveStream, encode);
string
XmlData = sr.ReadToEnd();
ReceiveStream.Close();
sr.Close();
Response.Close();
отрабатывает только один раз, и на все последующие WebDAV-запросы сервер отвечает (400) Bad request (продолжается в течении 5-10 минут, а потом все опять нормально) А иногда отрабатывает множество раз подряд (1000+) без явных проблем.
Собственно вопрос - почему такое может происходить и как с этим бороться?