title: Can't access public folders root
body: <p>I've recently coded a .NET Console app using C#. It's purpose was to read the emails within a specific folder, parse them for specific values and save them to a database.</p>
  
  <p>Our email system, at the time I originally coded this, was Exchange 2003. However, I was made aware we would soon be upgrading to Exchange 2010: ergo, I built the code to work in both environments. </p>
  
  <p>Following the migration to Exchange 2010, however, the app has broken. </p>
  
  <p>The app uses the EWS API for 2010 functionality. When it attempts to use the ExchangeService's FindFolders method to find the publicfoldersroot, it throws an exception. Here's the code:</p>
  
  <pre><code>ExchangeService service = new ExchangeService();
  FindFoldersResults findRootFldrs;
  
  service.UseDefaultCredentials = true;
  service.AutodiscoverUrl("xxxxx@xxxx.xxx", delegate(string x) {
  return true; });
  
  FolderView fview = new FolderView(100);
  fview.Traversal = FolderTraversal.Deep;
  
  findRootFldrs = service.FindFolders(WellKnownFolderName.PublicFoldersRoot, 
  fview);
  </code></pre>
  
  <p>The exception: <code>ErrorInvalidSchemaVersionForMailboxVersion</code>, aka:</p>
  
  <blockquote>
    <p>The mailbox that was requested doesn't support the specified RequestServerVersion</p>
  </blockquote>
  
  <p>I've attempted:</p>
  
  <ul>
  <li><p>Setting the exchangeservice to 2007 (throws an exception: "An internal server error occurred. The operation failed.")</p></li>
  <li><p>Giving myself the highest level of permission to the Public Folder (no effect)</p></li>
  <li><p>Manually setting my credentials (no effect)</p></li>
  </ul>
  
  <p>I can view the public folders in Outlook 2007; the publicfoldersroot property is available in the intellisense; the code works on local folders (I can parse my inbox).</p>
  
  <p>My current thinking is that it's a setting on the recent setup of Exchange 2010: unfortunately that isn't really my field. The exception tells me it's trying to use a previous version of Exchange. Setting it to 2007 simply causes the code to fail with an internal server error. </p>