Getting Started
EAS Web requires Visual Studio 2012 Update 2. You'll probably find some templates and stuff to be missing if you try to build it with previous versions.

Before you compile and build make sure that you set the "BaseUrl" in the web.config file. This is used for building urls so that the controllers can call into other APIs internally. If you host your website at this is what you insert. Do include the http part (or https), and don't include a slash ("/") at the end.

The default is to deploy to IIS Express on the dev machine which you can of course change if you like.

There are some issues to be aware of (they are on the work list):
  • If you use https and SSL you need to make sure the certs are good. This means that if your site runs on your SSL certificate needs to include this address, and it needs to be issued by an authority trusted by the computer hosting the site. Self-signed would be ok, but then you need to add it to the certificate store of the server. Code to override this will be implemented later.
  • Exception handling leaves something to be desired at the moment...
  • The EAS protocol used for testing is 14.1 meaning that it should work with Exchange 2010 SPx and Exchange 2013, but might not work as expected for previous versions of Exchange. It has not been decided yet if 12.1 should be included (for supporting Exchange 2007).
  • Exchange 2003 will not be supported as the documentation for this version has not been made available publicly by Microsoft.

There seems to be an issue building the solution if you're using Visual Studio 2012 Express. The reason is that the EAS Protocol project is a Portable Class Library, and this is not supported in all SKUs.
A workaround that enables the project to build and function is to do the following:
  • Open "EAS Protocol.csproj"
  • Remove the "<ProjectTypeGuids>...</ProjectTypeGuids>"-tag
  • Reload the project

Currently implemented
Implementing the entire EAS protocol will be a work in progress for some time. For now only HTTP GET is implemented meaning that you can extract information from Exchange Server, but not pushing content back. So if something fails it's not going to break anything :) The following info can be fetched from Exchange:
Testing the API
Most people don't interface all that well through a REST API, so I encourage you to implement a client. You can however test the API in the browser if you like. Input the query string parameters manually and it should work.

One thing to note about the parameters: The credentials parameter assumes you have encoded the string first. So you do a base64-encoding of either "email address:password" or "domain\username:password".

Testing without building and deploying
Downloading and building if you don't have everything in place can take time. So to test without even loading up Visual Studio you can head over to and test. It's a free web site in Azure so if you try to send a whole bunch of bytes through it there is a chance it'll power itself down. (For now that is the way it'll work.)

Last edited Sep 17, 2013 at 11:26 AM by ahell, version 8


No comments yet.