Today I had the chance to get back to some code for CreateFolder which creates a public folder within our Exchange 2007 environment support by Microsoft’s Hosted Messaging and Collaboration frame work. I’ve been highly critical of Microsoft’s code before, and today has taken that to a new level.
Here is what I’m dealing with. First, let’s go to the documentation on TechNet:
Pretty clear that we have a few required parameters and a few optional ones to set some quotas. These optional parameters are what will soon drive me to uncontrollable rage.
Next, let’s look at the example directly from the web service. Here’s what it states we can pass:
POST /mpsws/ManagedEmail2007/Service.asmx HTTP/1.1
Host: prov01.bacon.lightedge.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://provisioning.microsoft.com/webservice/managedemail2007/CreateFolder"
string
string
string
string
string
string
string
string
boolean
Again, everything looks great. postStorageQuota and storageQuota are both there and seem perfectly reasonable.
So let’s actually SEND that command to the web service. Here’s the error I get back:
The element 'CreateFolder_Request' in namespace 'http://provisioning.microsoft.com/exchange2007provider' has invalid child
element 'postStorageQuota' in namespace 'http://provisioning.microsoft.com/exchange2007provider'. List of possible elements expected: 'prohibitPostQuota, server, issueWarningQuota' in namespace 'http://provisioning.microsoft.com/exchange2007provider'.The element 'CreateFolder_Request' has invalid child element 'postStorageQuota' . List of possible elements expected: 'prohibitPostQuota, server, issueWarningQuota' .
You get this is you change PostStorageQuota to prohibitPostQuota.
The element 'CreateFolder_Request' in namespace 'http://provisioning.microsoft.com/exchange2007provider' has invalid child element 'storageQuota' in namespace 'http://provisioning.microsoft.com/exchange2007provider'. List of possible elements expected: 'prohibitPostQuota, server, issueWarningQuota' in namespace 'http://provisioning.microsoft.com/exchange2007provider'.The element 'CreateFolder_Request' has invalid child element 'storageQuota' . List of possible elements expected: 'prohibitPostQuota, server, issueWarningQuota' .
In case you missed it, they changed the variable with in the back end server code, and failed to tell anyone that they made this change. Awesome!
This appeared only after we made the jump up to HMC 4.5 rollup 9. Before the PostStorageQuota and StorageQuota worked as expected. Needless to say, I’m less than impressed that they changed properties on me and failed to update the documentation OR the web service example. I guess figuring this out with trial by fire is the way that Microsoft expects you to learn. Thanks Microsoft!
Share this:
<div class="sd-content">
<ul>
<li class="share-facebook">
<a rel="nofollow" data-shared="sharing-facebook-1507" class="share-facebook sd-button share-icon no-text" href="http://usrlocal.com/2011/09/hmc-createfolder/?share=facebook" target="_blank" title="Click to share on Facebook"><span></span><span class="sharing-screen-reader-text">Click to share on Facebook (Opens in new window)</span></a>
</li>
<li class="share-linkedin">
<a rel="nofollow" data-shared="sharing-linkedin-1507" class="share-linkedin sd-button share-icon no-text" href="http://usrlocal.com/2011/09/hmc-createfolder/?share=linkedin" target="_blank" title="Click to share on LinkedIn"><span></span><span class="sharing-screen-reader-text">Click to share on LinkedIn (Opens in new window)</span></a>
</li>
<li class="share-google-plus-1">
<a rel="nofollow" data-shared="sharing-google-1507" class="share-google-plus-1 sd-button share-icon no-text" href="http://usrlocal.com/2011/09/hmc-createfolder/?share=google-plus-1" target="_blank" title="Click to share on Google+"><span></span><span class="sharing-screen-reader-text">Click to share on Google+ (Opens in new window)</span></a>
</li>
<li class="share-pinterest">
<a rel="nofollow" data-shared="sharing-pinterest-1507" class="share-pinterest sd-button share-icon no-text" href="http://usrlocal.com/2011/09/hmc-createfolder/?share=pinterest" target="_blank" title="Click to share on Pinterest"><span></span><span class="sharing-screen-reader-text">Click to share on Pinterest (Opens in new window)</span></a>
</li>
<li class="share-twitter">
<a rel="nofollow" data-shared="sharing-twitter-1507" class="share-twitter sd-button share-icon no-text" href="http://usrlocal.com/2011/09/hmc-createfolder/?share=twitter" target="_blank" title="Click to share on Twitter"><span></span><span class="sharing-screen-reader-text">Click to share on Twitter (Opens in new window)</span></a>
</li>
<li class="share-email">
<a rel="nofollow" data-shared="" class="share-email sd-button share-icon no-text" href="http://usrlocal.com/2011/09/hmc-createfolder/?share=email" target="_blank" title="Click to email this to a friend"><span></span><span class="sharing-screen-reader-text">Click to email this to a friend (Opens in new window)</span></a>
</li>
<li class="share-end">
</li>
</ul>
</div>