现在手头的项目,一直没有写用WebDAV的MKCOL 在Exchange 2K里创建Folder的方法,现在要用上了,今天准备补上。

   照SDK里的Sample,Create了一个如下的Request:

MKCOL /pub2/folder1/folder2/ HTTP/1.1
Host: hostname
Content-Type: text/xml
Content-Length: XXX

<?xml version="1.0"?>
<g:propertyupdate xmlns:g="DAV:" >
    <g:set>
        <g:prop>
            <g:displayname>value</g:displayname>
        </g:prop>
        <g:prop>
            <f:myprop xmlns:f="urn:schemas-mydomain-tld:">Test</f:myprop>
        </g:prop>
    </g:set>
</g:propertyupdate>

但是却没有得到预期的Http Status 201 Created,Response Status Code 是 403 Forbidden

研究了半天,才发现原因是不能在MKCOL的时候设置DAV:displayname 属性,顺手换了个属性,改成:


<?xml version="1.0"?>
<a:propertyupdate xmlns:a="DAV:" xmlns:b="urn:schemas:exchange:solutions:MySolution:">
 <a:set>
  <a:prop>
   <b:title>MySolution</b:title>
  </a:prop>
 </a:set>
</a:propertyupdate>

就OK了。

难道Exchange SDK里的Sample 是没有经过测试的?奇怪的说。