Я бы попробовал использовать EWS Managed Api вместо того, чтобы пытаться свернуть свой собственный.Если это, если это не вариант, вы можете добавить httpheaders, переопределив сгенерированный метод GetWebRequest на ExchangeServiceBinding, чтобы получить доступ к заголовкам следующим образом:
public class ExchangeServiceBindingWithHeaders : EwsProxy.ExchangeServiceBinding
{
private NameValueCollection _customHeaders = new NameValueCollection();
public void AddHeaders(string key, string value)
{
_customHeaders.Add(key, value);
}
protected override WebRequest GetWebRequest(Uri uri)
{
HttpWebRequest req = (HttpWebRequest)base.GetWebRequest(uri);
req.Headers.Add(_customHeaders);
return req;
}
}
Затем вы можете вызвать новый производный класс, чтобы добавить пользовательскийзаголовки:
ExchangeServiceBindingWithHeaders service = new ExchangeServiceBindingWithHeaders();
service.RequestServerVersionValue = new RequestServerVersion();
service.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2010;
service.Credentials = new NetworkCredential("<username>", "<password>", "<domain>");
service.Url = @"https://<FQDN>/EWS/Exchange.asmx";
service.AddHeaders("X-AnchorMailbox", "some@emailaddress.com");
service.AddHeaders("X-PreferServerAffinity", "true");