Proxy 在ews自动生成的代理中设置HttpHeader

Proxy 在ews自动生成的代理中设置HttpHeader,proxy,exchange-server,exchangewebservices,Proxy,Exchange Server,Exchangewebservices,我正在运行一个exchange同步应用程序,该应用程序在使用Exchange2010构建的.NET中自动生成代理类 现在,我需要设置HttpHeaders: service.HttpHeaders.Add("X-AnchorMailbox", Mailbox.SMTPAddress); service.HttpHeaders.Add("X-PreferServerAffinity", "true"); 就像这里描述的: 但是它引用了EWS管理的API,我在我的ExchangeServiceB

我正在运行一个exchange同步应用程序,该应用程序在使用Exchange2010构建的.NET中自动生成代理类

现在,我需要设置HttpHeaders:

service.HttpHeaders.Add("X-AnchorMailbox", Mailbox.SMTPAddress);
service.HttpHeaders.Add("X-PreferServerAffinity", "true");
就像这里描述的:

但是它引用了EWS管理的API,我在我的
ExchangeServiceBindingObject
中找不到该属性。那么,如何在自动生成的代理中设置此标头呢?

我会尝试使用,而不是尝试使用您自己的。如果这不是一个选项,您可以通过覆盖ExchangeServiceBinding上生成的GetWebRequest方法来添加httpheaders,如下所示:

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");
ExchangeServiceBindingWithHeaders服务=新的ExchangeServiceBindingWithHeaders();
service.RequestServerVersionValue=新的RequestServerVersion();
service.RequestServerVersionValue.Version=ExchangeVersionType.Exchange2010;
service.Credentials=新的网络凭据(“,”,“);
service.Url=@“https:///EWS/Exchange.asmx";
服务.AddHeaders(“X-AnchorMailbox,”some@emailaddress.com");
AddHeaders(“X-PreferServerAffinity”、“true”);