Quantcast
Channel: Exchange Server Development forum
Viewing all articles
Browse latest Browse all 7132

Initializing EWS Service prevents postback

$
0
0

I am developing a plugin which utilises EWS for an existing product and I have discovered that initializing the service prevents me from making a postback to my ASPX pages.

I traced this back to the Initialization call for EWS through trial and error, commenting and uncommenting sections until postback was successful.

Why is this happening?

Example:

AjaxHandler.aspx.cs

        public void Test()
        {
            Response.Clear();
            Response.Write("Test");
            Response.Flush();
            Response.End();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
               if (Request.Params["Request"].Equals("LoadEWS"), StringComparison.InvariantCulture))
               {
                // < --- Irrelevant code omitted --- >
                SoapClient.LoadExchangeWebServiceData(Session, email, password, version);
                Test();
                }
         }
SoapClient.cs

 public static void LoadExchangeWebServiceData(HttpSessionState Session, string email, string password, string version)
        {
            try
            {
                Functions functions = new Functions(email, password, version);
            }
            catch (Exception)
            {
                throw;
            }
        }

    public class Functions
    {
        private ExchangeService _service;

        public Functions(string emailAddress, string password, string exchangeVersion)
        {
            try
            {
                #region Troubleshooting
                // Any initialization of ExchangeService prevents postback using Response.Write() as called in `Test()` method
                // If this next line is commented out postback works as expected
                _service = new ExchangeService(ExchangeVersion.Exchange2010);
                //_service.AutodiscoverUrl(emailAddress);
                //_service.Credentials = new NetworkCredential(emailAddress, password);
                //_service.AutodiscoverUrl(emailAddress);
                #endregion
                
                // No issues with postback populating below object
                UserData userData = new UserData();
                userData.SetEmailAddress(emailAddress);
                userData.SetPassword(password);
                userData.SetExchangeVersion(exchangeVersion);
                
                // What I use when I utilize this class from elsewhere. Commented out as part of troubleshooting
                //_service = Service.ConnectToService(userData, new TraceListener());
                //_service = Service.ConnectToService(userData);
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to connect to Exchange Service", ex);
            }
        }
Displaying Response (ASPX Page)

function ajaxResponse()
{
    if (xmlhttp.readyState == 4)
    {
        alert("ResponseText: " + xmlhttp.responseText.toString());
    }
}

With EWS service initialization commented out, the alert is posted on screen. With any form of the service initialization enabled I see no alert box.


Viewing all articles
Browse latest Browse all 7132

Trending Articles