$theTitle=wp_title(" - ", false); if($theTitle != "") { ?>
About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like
9 Mar // php the_time('Y') ?>
Today I was troubleshooting a message that appeared when a user tries to edit a document from SharePoint on a Citrix XenApp server.
The user browsed to a word document on Sharepoint and selected “Edit in Microsoft Office Word” from the Combobox:
This would present the following error message to the user:
A Google on this error message leads to Microsoft kb833714 which tells us to register OWSSUPP.DL (using RegSvr32). If you try that it will always fail with error 0x80070716 which is defined as ERROR_RESOURCE_NAME_NOT_FOUND in winerror.h.
On a machine where opening documents from SharePoint worked as expected I looked into the Internet Explorer Add-Ons an noticed “SharePointOpenDocuments” which refers to OWSSUPP.DLL:
The referenced GUID, {9F9C4924-C3F3-4459-A396-9E9E0D8B83D1} is a Class Id so I looked that up in the registry:
I verified that the path was correct, next step was to check the other parameters. I wrote a PowerShell script to check a bunch of machines:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #inline array $Servers = @() ; $Servers += @(" S-TS01 S-TS51 S-TS52 S-TS53 S-TS54 S-TS152 ") -replace "`r", "" -split "`n" | where {$_ -ne ""} foreach ($server in $Servers) { "$server" $hklm = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LocalMachine", $server) $hkcr = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("ClassesRoot", $server) try { $key = $hkcr.OpenSubKey("SharePoint.OpenDocuments\CurVer") $curver = $key.GetValue("") "`tCurrent version is: {0}" -f $curver } catch { "`terror querying current version" } try { $key = $hkcr.OpenSubKey("$curver\clsid") $guid = $key.GetValue("") "`tGuid: {0}" -f $guid } catch { "`terror querying guid" } $key = $hkcr.OpenSubKey("CLSID\$guid\InprocServer32") try { $inProcServer = $key.GetValue("") "`tInProcServer: {0}" -f $inProcServer } catch { "`terror querying InProcServer32" } "`tInProcServer Exists: {0}" -f (Test-Path ($inProcServer -replace "C:","\\$server\c$")) try { $key = $hkcr.OpenSubKey("CLSID\$guid\InprocServer32\ThreadingModel") $threadingModel = $key.GetValue("") "`tThreading Model: {0}" -f $threadingModel } catch { "`terror querying ThreadingModel" } $key = $hkcr.OpenSubKey("CLSID\$guid\ProgID") try { $ProgID = $key.GetValue("") "`tInProcServer: {0}" -f $ProgID } catch { "`terror querying ProgID" } $key = $hkcr.OpenSubKey("CLSID\$guid\TreatAs") try { $treatAs = $key.GetValue("") "`tTreatAs: {0}" -f $treatAs } catch { "`terror querying TreatAs" } $key = $hklm.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Ext\PreApproved\$guid") "`tGuid PreApproved: {0}" -f !((!$key)) $key = $hklm.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Ext\Settings\$guid") "`tGuid Blocked: {0}" -f !((!$key)) } |
Let’s check the output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | S-TS01 Current version is: SharePoint.OpenDocuments.2 Guid: {9F9C4924-C3F3-4459-A396-9E9E0D8B83D1} InProcServer: C:\Program Files\Microsoft Office\OFFICE11\OWSSUPP.DLL InProcServer Exists: True error querying ThreadingModel InProcServer: SharePoint.OpenDocuments.2 error querying TreatAs Guid PreApproved: True Guid Blocked: False S-TS51 Current version is: SharePoint.OpenDocuments.2 Guid: {9F9C4924-C3F3-4459-A396-9E9E0D8B83D1} InProcServer: C:\PROGRA~1\MICROS~1\OFFICE11\OWSSUPP.DLL InProcServer Exists: True Threading Model: Apartment InProcServer: SharePoint.OpenDocuments.2 TreatAs: {9203C2CB-1DC1-482d-967E-597AFF270F0D} Guid PreApproved: True Guid Blocked: False ... ... |
A server where it didn’t work had the TreatAs key additionally, let’s check where that Guid is going:
It leads to ProgID “SharePoint OpenDocuments”, however ProgID “SharePoint.OpenDocuments” cannot be resolved:
I removed the TreatAs key and after that it worked perfectly!
2 Responses for "Edit Document requires a Windows SharePoint Services-compatible application"
[…] registry key Author: Remko 13 Mar Last week I wrote about an error message the users received when opening documents from SharePoint.The article showed how to fix the problem but it didn’t feel good that I didn’t know […]
The problem “…requires a sharepoint compatible…” happened to me, when I was using Internet Explorer 64bit. The 32bit version worked fine.
Leave a reply