ISSUE - Outlook/SharePoint Interop - Documents won't sync to Outlook
Issue: One of our customers was seeing an issue wherein site users migrated from v2 to v3 were unable to sync the contents of document folders hosted on the my site to their Outlook 2007 folder list. Interestingly, the folders containing the documents would sync as expected.
References:
- MOSS2007 My Site (personalization) - https://blogs.msdn.com/sharepoint/archive/2006/12/01/getting-started-with-personalization-in-moss-2007.aspx
- Content Types in SharePoint - https://msdn2.microsoft.com/en-us/library/ms452896.aspx and https://msdn2.microsoft.com/en-us/library/ms472236.aspx
- Outlook 2007 integration with V3 - https://download.microsoft.com/download/7/5/1/75168f8a-e2dc-479a-861c-afb3730c9ee6/OutlookSharePointIntegration_OV_E.ppt
- Netmon - https://blogs.technet.com/netmon/
Technical Details: We used netmon to determine that metadata about the documents was being transferred across the wire from MOSS to the Outlook client. In the packet below, note that the name of the document is test.docx (highlighted in green). Also note the Site Content type highlighted in yellow. I have snipped out the involved IP addresses.
No. Time Source Destination Protocol Info
5259 2007-05-15 12:50:13.329717 <snip> <snip> ESP ESP (SPI=0x83312de5)
Frame 5259 (1510 bytes on wire, 1510 bytes captured)
Arrival Time: May 15, 2007 12:50:13.329717000
[Time delta from previous packet: 8.550813000 seconds]
[Time since reference or first frame: 8.550813000 seconds]
Frame Number: 5259
Packet Length: 1510 bytes
Capture Length: 1510 bytes
[Frame is marked: False]
[Protocols in frame: eth:ip:esp]
Ethernet II, Src: Cisco_0f:59:ca (00:07:b3:0f:59:ca), Dst: DellComp_15:39:b5 (00:08:74:15:39:b5)
Destination: DellComp_15:39:b5 (00:08:74:15:39:b5)
Address: DellComp_15:39:b5 (00:08:74:15:39:b5)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Source: Cisco_0f:59:ca (00:07:b3:0f:59:ca)
Address: Cisco_0f:59:ca (00:07:b3:0f:59:ca)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast)
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default)
Type: IP (0x0800)
<snip>
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 1496
Identification: 0xc8aa (51370)
Flags: 0x04 (Don't Fragment)
0... = Reserved bit: Not set
.1.. = Don't fragment: Set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 55
Protocol: ESP (0x32)
Header checksum: 0x03cd [correct]
[Good: True]
[Bad : False]
Source: <snip>
Destination: <snip>
Encapsulating Security Payload
SPI: 0x83312de5
Sequence: 353
0000 00 08 74 15 39 b5 00 07 b3 0f 59 ca 08 00 45 00 ..t.9.....Y...E.
0010 05 d8 c8 aa 40 00 37 32 03 cd 9d 36 47 1a 41 35 <....@.72...6G.A5>
0020 4b f7 83 31 2d e5 00 00 01 61 00 50 11 7e 9e 10 K..1-....a.P.~..
0030 78 29 a2 f8 69 f2 50 10 ff ff ef a4 00 00 54 79 x)..i.P.......Ty
0040 70 65 3e 31 3c 2f 43 61 6c 65 6e 64 61 72 54 79 pe>1</CalendarTy
0050 70 65 3e 3c 54 69 6d 65 32 34 3e 46 61 6c 73 65 pe><Time24>False
0060 3c 2f 54 69 6d 65 32 34 3e 3c 54 69 6d 65 5a 6f </Time24><TimeZo
0070 6e 65 3e 34 38 30 3c 2f 54 69 6d 65 5a 6f 6e 65 ne>480</TimeZone
0080 3e 3c 53 6f 72 74 4f 72 64 65 72 3e 32 30 37 30 ><SortOrder>2070
0090 3c 2f 53 6f 72 74 4f 72 64 65 72 3e 3c 50 72 65 </SortOrder><Pre
00a0 73 65 6e 63 65 3e 54 72 75 65 3c 2f 50 72 65 73 sence>True</Pres
00b0 65 6e 63 65 3e 3c 2f 52 65 67 69 6f 6e 61 6c 53 ence></RegionalS
00c0 65 74 74 69 6e 67 73 3e 3c 53 65 72 76 65 72 53 ettings><ServerS
00d0 65 74 74 69 6e 67 73 3e 3c 53 65 72 76 65 72 56 ettings><ServerV
00e0 65 72 73 69 6f 6e 3e 31 32 2e 30 2e 30 2e 34 35 ersion>12.0.0.45
00f0 31 38 3c 2f 53 65 72 76 65 72 56 65 72 73 69 6f 18</ServerVersio
0100 6e 3e 3c 52 65 63 79 63 6c 65 42 69 6e 45 6e 61 n><RecycleBinEna
0110 62 6c 65 64 3e 54 72 75 65 3c 2f 52 65 63 79 63 bled>True</Recyc
0120 6c 65 42 69 6e 45 6e 61 62 6c 65 64 3e 3c 53 65 leBinEnabled><Se
0130 72 76 65 72 52 65 6c 61 74 69 76 65 55 72 6c 3e rverRelativeUrl>
0140 2f 73 69 74 65 73 2f 76 2d 64 61 73 68 65 65 3c /sites/v-dashee<
0150 2f 53 65 72 76 65 72 52 65 6c 61 74 69 76 65 55 /ServerRelativeU
0160 72 6c 3e 3c 2f 53 65 72 76 65 72 53 65 74 74 69 rl></ServerSetti
0170 6e 67 73 3e 3c 2f 4c 69 73 74 3e 3c 2f 43 68 61 ngs></List></Cha
0180 6e 67 65 73 3e 0d 0a 3c 72 73 3a 64 61 74 61 20 nges>..<rs:data
0190 49 74 65 6d 43 6f 75 6e 74 3d 22 34 22 3e 0d 0a ItemCount="4">..
01a0 20 20 20 3c 7a 3a 72 6f 77 20 6f 77 73 5f 49 44 <z:row ows_ID
01b0 3d 27 31 27 20 6f 77 73 5f 6f 77 73 68 69 64 64 ='1' ows_owshidd
01c0 65 6e 76 65 72 73 69 6f 6e 3d 27 32 27 20 6f 77 enversion='2' ow
01d0 73 5f 43 72 65 61 74 65 64 3d 27 32 30 30 37 2d s_Created='2007-
01e0 30 31 2d 30 38 54 32 31 3a 32 39 3a 32 39 5a 27 01-08T21:29:29Z'
01f0 20 6f 77 73 5f 4d 6f 64 69 66 69 65 64 3d 27 32 ows_Modified='2
0200 30 30 37 2d 30 31 2d 30 38 54 32 31 3a 32 39 3a 007-01-08T21:29:
0210 34 33 5a 27 20 6f 77 73 5f 43 6f 6e 74 65 6e 74 43Z' ows_Content
0220 54 79 70 65 49 64 3d 27 30 78 30 30 44 36 36 35 TypeId='0x00D665
0230 36 32 44 42 44 31 42 35 33 30 34 44 39 35 33 42 62DBD1B5304D953B
0240 46 41 42 37 36 36 44 34 32 41 32 37 27 20 6f 77 FAB766D42A27' ow
0250 73 5f 46 69 6c 65 44 69 72 52 65 66 3d 27 31 3b s_FileDirRef='1;
0260 23 73 69 74 65 73 2f 76 2d 64 61 73 68 65 65 2f #sites/v-dashee/
0270 50 72 69 76 61 74 65 20 44 6f 63 75 6d 65 6e 74 Private Document
0280 73 27 20 6f 77 73 5f 45 6e 63 6f 64 65 64 41 62 s' ows_EncodedAb
0290 73 55 72 6c 3d 27 68 74 74 70 3a 2f 2f 6d 79 2f sUrl='https://my/
02a0 73 69 74 65 73 2f 76 2d 64 61 73 68 65 65 2f 50 sites/v-dashee/P
02b0 72 69 76 61 74 65 25 32 30 44 6f 63 75 6d 65 6e rivate%20Documen
02c0 74 73 2f 74 65 73 74 2e 64 6f 63 78 27 20 6f 77 ts/test.docx' ow
Root Cause: On a clean SharePoint install, the site content ID for a document starts with 0x0101. If it doesn’t, then Outlook will not respect the item to be synced as a document. As can be seen above, this content ID (0x00D65...) doesn’t indicate to Outlook that a document is being transferred (according to MSDN, this is not even a valid content id) in spite of the fact that the rest of the document’s metadata looks great!
Resolution: Upon further investigation, this assignment of a bad contnet ID was found to be an issue that only happened in Beta1 for V3. There are two workarounds:
- Delete and recreate the user’s my site
- The second set of workaround steps are to add a new, valid content type to the list, change everything to be that content type, delete ‘Document’, Re-add ‘Document, change everything back to document, then delete the temporary content type you added. Then, disconnect the list from Outlook and reconnect. HINT - Bulk edit of site content types is achievable in the UI:
Starting at my site, I created a custom site content type called sfellmandoc. I then created a custom datasheet view for my Shared Documents list that includes the site content type as a column as seen here:
Note that I changed the first item to the custom site content type sfellmandoc; this is mandatory to make the bulk edit. Then comes the UI magic:
- Right click on the column header “Content Type” then choose Fill and Fill Down from the drop-down menu that appears.
The item that you changed in the first field will now be filled for all docs in the list:
Cool issue! Let me know what you think...