Ask a questionAsk a question
 

Answer.net and Exchange RPC

  • Wednesday, October 28, 2009 12:09 AMCristianFS Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Hi all, I would like to know if it's possible to establish a communication with the exchange server using .net sockets and send commands to it via rpc calls bypassing the EMSMDB interface, I've tried sending a byte[] (MS-OXCROPS RopLogon RequestBuffer) to the exchange server via the socket connection but got no response from it, I'm not sure if the connection is wrong or if the request is wrong or (hopefully) if my response buffer is wrong. 

    Thanks a lot.

    Cristian

Answers

  • Monday, November 02, 2009 11:40 PMTom Devey - MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Cristian,

    Sorry for the delayed response as I was sick all of last week.

    The Exchange Server is implemented on top of RPC.  Port 135 your are referencing is the RPC endpoint mapper.  The details about how the RPC endpoint mapping works is documented in DCE 1.1 Remote Procedure Specification found in part 4 of [C706].    
    Developer Consultant

All Replies

  • Wednesday, October 28, 2009 4:27 AMTom Devey - MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Proposed Answer
    Hi Cristian,

    Exchange Server is implemented on top of RPC so your answer is no.   From a .NET client perspetive you will have to implement an unmanaged code that exposes the RPC interaces described in [MS-OXCRPC].  Your other option is to use the Exchange Web Services (EWS) which intergates well with managed code.

    Does this help?

    Developer Consultant
  • Wednesday, October 28, 2009 1:59 PMCristianFS Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Thanks for your answer Tom, my doubt came from an article "How do outlook, cdo, mapi and providers work together" (http://technet.microsoft.com/en-us/library/aa996249(EXCHG.65).aspx) which shows the components interaction and also shows that the rpc layer is on top of the Exchange Store.
    So I figured out that EMSMDB is just a facade wrapping the network rpc calls using sockets, so I thought this wrapper could be rewritten in managed code. Also, if exchange has a port 135 open for communication and provides a buffer for data interchange I thought that one could interchange requests and responses with exchange using that buffer regardless of the lenguage you're working with, that's whtat I would call an "Open protocol". Another new question I have is if the managed smtp component is implemented calling and unmanged api or does it connect directly to port 25 using sockets in the same way i'm trying to do it with the port 125. Thanks in advance.

    Outlook component stack


    Cristian.
  • Monday, November 02, 2009 11:40 PMTom Devey - MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Cristian,

    Sorry for the delayed response as I was sick all of last week.

    The Exchange Server is implemented on top of RPC.  Port 135 your are referencing is the RPC endpoint mapper.  The details about how the RPC endpoint mapping works is documented in DCE 1.1 Remote Procedure Specification found in part 4 of [C706].    
    Developer Consultant
  • Monday, November 09, 2009 5:47 PMCristianFS Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Thanks for the answer Tom, I'll have a look at the RPC documentation.
  • Monday, November 09, 2009 10:08 PMTom Devey - MSFTMSFT, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    Cristian,

    Thank you for your interest in the Exchange Server protocol and if you have any additional questions please do not hesitate to post your questions here to this forum.
    Developer Consultant