none
Event ID: 4002 with Exchange 2010 SP2 RU1

    Question

  • Hello,

    I have a Windows 2008 R2 domain with Exchange 2010 server. We have three MBX servers and two CAS servers. We are in a coexistence mode with Exchange 2003 with 95% of users moved to Exchange 2010. I have seen some 4002, high availabilty errors recently on all three MBX servers  and find attached error from event viewer. I am more thinking of something going on with free busy data. I configured free busy replication between Exchange 2003 and Exchange 2010 before moving legacy users to Exchange 2010. I will appreciate any advise or suggestions on this issue.

    TIA 

    ==========================================================

    Log Name:      Application
    Source:        MSExchange Availability
    Date:          4/10/2012 7:47:35 AM
    Event ID:      4002
    Task Category: (4)
    Level:         Error
    Keywords:      Classic
    User:          N/A
    Computer:      SERVER1.test.com
    Description:
    Process 3948: ProxyWebRequest CrossSite from S-1-1-0 to https://cas.test.com/EWS/Exchange.asmx failed. Caller SIDs: NetworkCredentials. The exception returned is Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequestProcessingException: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
       at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, Service service, IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling():. The request information is ProxyWebRequest type = CrossSite, url = https://cas.test.com/EWS/Exchange.asmx
    Mailbox list = <USER1>SMTP:USER1@test.com, Parameters: windowStart = 4/1/2012 12:00:00 AM, windowEnd = 6/1/2012 12:00:00 AM, MergedFBInterval = 30, RequestedView = FreeBusy
    . ---> System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
       at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, Service service, IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling()
       --- End of inner exception stack trace ---
    . Name of the server where exception originated: SERVER1. Make sure that the Active Directory site/forest that contain the user's mailbox has at least one local Exchange 2010 server running the Availability service. Turn up logging for the Availability service and test basic network connectivity.
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="MSExchange Availability" />
        <EventID Qualifiers="49156">4002</EventID>
        <Level>2</Level>
        <Task>4</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime="2012-04-10T11:47:35.000000000Z" />
        <EventRecordID>70568</EventRecordID>
        <Channel>Application</Channel>
        <Computer>server.test.com</Computer>
        <Security />
      </System>
      <EventData>
        <Data>3948</Data>
        <Data>ProxyWebRequest CrossSite from S-1-1-0 to https://cas.test.com/EWS/Exchange.asmx</Data>
        <Data>NetworkCredentials</Data>
        <Data>Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequestProcessingException: System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
       at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, Service service, IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling():. The request information is ProxyWebRequest type = CrossSite, url = https://cas.test.com/EWS/Exchange.asmx
    Mailbox list = &lt;USER1&gt;SMTP:USER1@test.com, Parameters: windowStart = 4/1/2012 12:00:00 AM, windowEnd = 6/1/2012 12:00:00 AM, MergedFBInterval = 30, RequestedView = FreeBusy
    . ---&gt; System.Net.WebException: The request failed with HTTP status 401: Unauthorized.
       at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
       at System.Web.Services.Protocols.SoapHttpClientProtocol.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.Proxy.Service.EndGetUserAvailability(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.FreeBusyApplication.EndProxyWebRequest(ProxyWebRequest proxyWebRequest, QueryList queryList, Service service, IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.ProxyWebRequest.EndInvoke(IAsyncResult asyncResult)
       at Microsoft.Exchange.InfoWorker.Common.Availability.AsyncWebRequest.EndInvokeWithErrorHandling()
       --- End of inner exception stack trace ---
    . Name of the server where exception originated: SERVER1</Data>
      </EventData>
    </Event>

    =================


    Tom

    Tuesday, April 10, 2012 1:01 PM

Answers

All replies

  • Can you tell me how the servers are laid out?   Do you have multiple AD sites for example?

    Cheers, Rhoderick NOTICE: My posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    Tuesday, April 10, 2012 6:01 PM
  • We have a single forest, single domain with three MBX servers in DAG and two CAS/HT servers running MS NLB.

    HTH


    Tom

    Tuesday, April 10, 2012 11:46 PM
  • Hi Tom,

    Yes, this event indicate a failure when try to retrieve free/busy information, and the failure is logon failure 401.

    I would suggest you verify the /ews virtual directory permission settings, make sure the certificate request is NOT requested from client computer.

    Refer to:

    http://blogs.technet.com/b/exchange/archive/2010/09/23/3411146.aspx

    http://support.microsoft.com/kb/943891

    IF the issue continues, test the url https://cas.test.com/EWS/Exchange.asmx from the affected client computer in IE, and then collect information via

    Get-WebServicesVirtualDirectory | fl

    Hope it is helpful.


    Fiona Liao

    TechNet Community Support

    Wednesday, April 11, 2012 6:50 AM
  • Just noticed the CAS servers running MS NLB. It is better if you can change the internal URL to be the FQDN of the internal virtual name of the load balancer and have a try. 

    Fiona Liao

    TechNet Community Support

    Wednesday, April 11, 2012 6:53 AM
  • Just noticed the CAS servers running MS NLB. It is better if you can change the internal URL to be the FQDN of the internal virtual name of the load balancer and have a try. 

    Fiona Liao

    TechNet Community Support

    That will depend upon the CAS name space design, and this should normally be set to the LB FQDN http://technet.microsoft.com/en-us/library/bb310763.aspx

    Cheers, Rhoderick NOTICE: My posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.

    Wednesday, April 11, 2012 2:25 PM
  • We have a single forest, single domain with three MBX servers in DAG and two CAS/HT servers running MS NLB.

    HTH


    Tom

    And all of those servers are in a single AD site - just want to confirm?

    What is the exact build of Exchange 2010 ?  SP1 and what rollup?

    EDIT - noticed you put the rollup in the title. 

    And for the errors above, is it a 2010 user that causes the failure to 2003, vice versa ?????

    Can you post the output of

    get-webservicesVirtualdirectory | fl

    Get-clientaccessServer | fl


    Cheers, Rhoderick NOTICE: My posts are provided “AS IS” without warranty of any kind, either expressed or implied, including but not limited to the implied warranties of merchantability and/or fitness for a particular purpose.


    Wednesday, April 11, 2012 2:28 PM
  • Hi Rohderick,

    Thanks for your reminder.

    @Tom,

    Is there any update?


    Fiona Liao

    TechNet Community Support

    Thursday, April 12, 2012 7:18 AM
  • Hi Rhoderick,

    We have two CAS servers, Cas1 and Cas2 with Outlook Web App running in NLB (CAS.TEST.COM) and client access array (ARRAY.TEST.COM) running in NLB.

    Internal url points to the respective server names and external url points to https://cas.test.com. Based on your's and Fiona's suggestion, I should have the internal URL pointing to the client access array cluster name, is that right? Or should i point to the OWA external URL, this doesn't make much sense. Please fill me if I am wrong.

    Could this change break OWA 2010?

    I am out of office till Monday and I will post the output then.

    TIA


    Tom

    Thursday, April 12, 2012 10:12 AM
  • Hi Tom,

    Internal URLs shoud not pointting to external OWA.

    How about the original issue of event ID 4002? Does the issue continue?


    Fiona Liao

    TechNet Community Support


    Friday, April 13, 2012 7:06 AM
  • IF the event ID 4002 disappears, we may mark this thread as answered. Your understanding would be appreciated.

    Fiona Liao

    TechNet Community Support

    Tuesday, April 17, 2012 9:47 AM