none
.net and Exchange RPC RRS feed

  • Question

  • 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
    Wednesday, October 28, 2009 12:09 AM

Answers

  • 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 2, 2009 11:40 PM
    Moderator

All replies

  • 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 4:27 AM
    Moderator
  • 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.
    Wednesday, October 28, 2009 1:59 PM
  • 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 2, 2009 11:40 PM
    Moderator
  • Thanks for the answer Tom, I'll have a look at the RPC documentation.
    Monday, November 9, 2009 5:47 PM
  • 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
    Monday, November 9, 2009 10:08 PM
    Moderator