Export (0) Print
Expand All

ExchangeServiceBinding Class

The ExchangeServiceBinding class contains the methods and properties that are used to send and receive the SOAP messages, set up Exchange impersonation, maintain user credentials, and identify the Exchange Web Services endpoint.

Namespace: ExchangeWebServices
Assembly: EWS (in ews.dll)

[GeneratedCodeAttribute("wsdl", "2.0.50727.42")] 
[WebServiceBindingAttribute(Name="ExchangeServiceBinding", Namespace="http://schemas.microsoft.com/exchange/services/2006/messages")] 
[XmlIncludeAttribute(typeof(AttendeeConflictData))] 
[XmlIncludeAttribute(typeof(BaseResponseMessageType))] 
[XmlIncludeAttribute(typeof(BaseSubscriptionRequestType))] 
[XmlIncludeAttribute(typeof(BaseGroupByType))] 
[XmlIncludeAttribute(typeof(RecurrenceRangeBaseType))] 
[DesignerCategoryAttribute("code")] 
[XmlIncludeAttribute(typeof(AttachmentType))] 
[XmlIncludeAttribute(typeof(ChangeDescriptionType))] 
[XmlIncludeAttribute(typeof(BasePagingType))] 
[XmlIncludeAttribute(typeof(BasePermissionType))] 
[XmlIncludeAttribute(typeof(BaseFolderType))] 
[XmlIncludeAttribute(typeof(BaseItemIdType))] 
[XmlIncludeAttribute(typeof(BaseEmailAddressType))] 
[XmlIncludeAttribute(typeof(BaseFolderIdType))] 
[XmlIncludeAttribute(typeof(BaseRequestType))] 
[XmlIncludeAttribute(typeof(RecurrencePatternBaseType))] 
[DebuggerStepThroughAttribute] 
public class ExchangeServiceBinding : SoapHttpClientProtocol
/** @attribute GeneratedCodeAttribute("wsdl", "2.0.50727.42") */ 
/** @attribute WebServiceBindingAttribute(Name="ExchangeServiceBinding", Namespace="http://schemas.microsoft.com/exchange/services/2006/messages") */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.AttendeeConflictData) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseResponseMessageType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseSubscriptionRequestType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseGroupByType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.RecurrenceRangeBaseType) */ 
/** @attribute DesignerCategoryAttribute("code") */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.AttachmentType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.ChangeDescriptionType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BasePagingType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BasePermissionType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseFolderType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseItemIdType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseEmailAddressType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseFolderIdType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.BaseRequestType) */ 
/** @attribute XmlIncludeAttribute(ExchangeWebServices.RecurrencePatternBaseType) */ 
/** @attribute DebuggerStepThroughAttribute() */ 
public class ExchangeServiceBinding extends SoapHttpClientProtocol
GeneratedCodeAttribute("wsdl", "2.0.50727.42") 
WebServiceBindingAttribute(Name="ExchangeServiceBinding", Namespace="http://schemas.microsoft.com/exchange/services/2006/messages") 
XmlIncludeAttribute(ExchangeWebServices.AttendeeConflictData) 
XmlIncludeAttribute(ExchangeWebServices.BaseResponseMessageType) 
XmlIncludeAttribute(ExchangeWebServices.BaseSubscriptionRequestType) 
XmlIncludeAttribute(ExchangeWebServices.BaseGroupByType) 
XmlIncludeAttribute(ExchangeWebServices.RecurrenceRangeBaseType) 
DesignerCategoryAttribute("code") 
XmlIncludeAttribute(ExchangeWebServices.AttachmentType) 
XmlIncludeAttribute(ExchangeWebServices.ChangeDescriptionType) 
XmlIncludeAttribute(ExchangeWebServices.BasePagingType) 
XmlIncludeAttribute(ExchangeWebServices.BasePermissionType) 
XmlIncludeAttribute(ExchangeWebServices.BaseFolderType) 
XmlIncludeAttribute(ExchangeWebServices.BaseItemIdType) 
XmlIncludeAttribute(ExchangeWebServices.BaseEmailAddressType) 
XmlIncludeAttribute(ExchangeWebServices.BaseFolderIdType) 
XmlIncludeAttribute(ExchangeWebServices.BaseRequestType) 
XmlIncludeAttribute(ExchangeWebServices.RecurrencePatternBaseType) 
DebuggerStepThroughAttribute 
public class ExchangeServiceBinding extends SoapHttpClientProtocol

The ExchangeServiceBinding class also contains methods for synchronous and asynchronous calls to the Exchange server. The ExchangeServiceBinding class that is described in this topic was created by using wsdl.exe version 2.0.50727.42. The ExchangeServiceBinding class that is created by using the Add Web Reference option from the Solutions Explorer pane of Microsoft Visual Studio 2005 is different. It contains a property named UseDefaultCredentials. If UseDefaultCredentials is set to true, the default credentials of the current user are used to make the Web service call. To use default credentials in a proxy that was created by using wsdl.exe, use the System.Net.CredentialCache static class to get the default system credentials and apply the credentials to the Credentials property of the ExchangeServiceBinding class. There are additional asynchronous methods for calling the Exchange Web Services on the ExchangeServiceBinding class that is created by using wsdl.exe. To view the differences, use a diff tool on the proxy files that were created by using wsdl.exe and the Add Web Reference option in Visual Studio 2005.

For an example of an asynchronous Web service call, see FindFolderAsync.


The following code example shows how to set up the ExchangeServiceBinding class with credentials, the URL of the service, and Exchange impersonation. This example shows USER1 performing a FindItem call on the Inbox of USER2. USER1 is impersonating USER2.

Bb401836.note(en-us,EXCHG.80).gifNote:
This example will run without the three lines that perform the Exchange impersonation. If these three lines are commented out, the example will search the Inbox of USER1. If these three lines remain in this example, Exchange impersonation must be configured for USER1.
static void FindExample()
{
    // Set up the binding with credentials and URL.
    ExchangeServiceBinding binding = new ExchangeServiceBinding();
    binding.Credentials = new NetworkCredential("USER1", "password", "exampledomain.com");
    binding.Url = @"https://ExchangeServer.exampledomain.com/EWS/Exchange.asmx";

    // Set up the binding for Exchange impersonation.
    binding.ExchangeImpersonation = new ExchangeImpersonationType();
    binding.ExchangeImpersonation.ConnectingSID = new ConnectingSIDType();
    binding.ExchangeImpersonation.ConnectingSID.PrimarySmtpAddress = "USER2@exampledomain.com";

    // Create the request.
    FindItemType request = new FindItemType();
    request.ItemShape = new ItemResponseShapeType();
    request.ItemShape.BaseShape = DefaultShapeNamesType.Default;
    request.Traversal = ItemQueryTraversalType.Shallow;
    request.ParentFolderIds = new BaseFolderIdType[1];
    DistinguishedFolderIdType inbox = new DistinguishedFolderIdType();
    inbox.Id = DistinguishedFolderIdNameType.inbox;
    request.ParentFolderIds[0] = inbox;

    // Send the request and get the response by using the binding object.
    FindItemResponseType response = binding.FindItem(request);
}
Bb401836.note(en-us,EXCHG.80).gifNote:
The Exchange server will return a 405 error if \ews or \ews\ is used for the endpoint instead of the full path of Exchange.asmx. By default, Internet Information Services (IIS) does not redirect requests to \ews and \ews\ to the appropriate Exchange.asmx endpoint.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Development Platforms

Windows XP Professional with Service Pack 2 (SP2), Windows Server 2003,

Target Platforms

Windows 98, Windows 2000, Windows 2000 Server, Windows CE, Windows Longhorn, Windows 98 Second Edition, Pocket PC, Smart Phone, Windows Server 2003, Windows XP Professional with Service Pack 2 (SP2)
Show:
© 2014 Microsoft