From a client they were not able to download any content, after investigation the DataTransferService.log I could see the following error
Error sending DAV request. HTTP code 500, status 'Internal Server Error' DataTransferService 24/08/2017 8:21:17 AM 3972 (0x0F84)
GetDirectoryList_HTTP('http://SERVERNAME:80/SMS_DP_SMSPKG$/f4e4ea5d-49ad-423a-9cac-cea869e6e1d7') failed with code 0x87d0027e. DataTransferService 24/08/2017 8:20:47 AM 28624 (0x6FD0)
After browsing to the server http://localhost/SMS_DP_SMSSIG$ it would return a HTTP Error 500.19 – Internal Server Error.
As WSUS was previously installed on this sever it was the culprit behind it. I had a look at the ApplicationHost.config file and noticed that suscomp.dll was still installed by WSUS even though it had been removed.
To verify that suscomp.dll is configured
- Go to C:\windows\system32\inetsrv\config and locate the ApplicationHost.config file
- Open it with notepad and look for the following lines below
scheme name=”xpress” doStaticCompression=”false” doDynamicCompression=”true”
- The following command needs to be run to disable the suscomp.dll that was installed when the WSUS server role was installed.From an elevated command prompt running the following.
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /-[name='xpress']
- If you need to re-enable this just change it slightly and run this command.
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /+[name='xpress',doStaticCompression='false',dll='%windir%\system32\inetsrv\suscomp.dll']
You might see content mismatch warnings in SCCM when content validation runs and determines that there is a discrepancy between the expected list of packages in WMI on the distribution point and the packages in the content library. In this scenario, the distribution point status goes into a warning state and the status message returned by the distribution point is listed in the Details pane when you view the status of the distribution point in the Monitoring workspace, Distribution Point Configuration Status node.
To determine which package is causing this mismatch, review the smsdpmon.log file on the distribution point.
Notice the log entries:
CContentDefinition::LibraryPackagesWmi: The package data in WMI is not consistent to PkgLib
CContentDefinition::LibraryPackagesWmi: Package CCA0000A can’t be found in PkgLib
The simplest way to determine the missing package is to view the Content Status in the Monitoring workspace and search for the package ID by using the search field. After you have found the package ID, you can determine the name of the software.
If the package is not on the site, you must remove the package from WMI on the distribution point. The namespace to connect to is rootsccmdp. The class that contains the list of packages expected is SMS_PackagesInContLib. The simplest way to find the package and remove it from WMI is to run a query on the distribution point such as the following, and then delete the object that is returned.
select * from SMS_PackagesInContLib Where PackageID = ‘CCB00002’
Note: Ensure that you replace the CCB00002 with your own package ID
If the package is on the site, you can update the content on the distribution point to clear the Warning state.
If the error still persists you can use this script to remove the offending packages/applications.
Download the Script from TechNet
Like many SCCM admins, one of the common issues we come across is a distribution point with failed packages. This may occur due to many reasons such as a bad link, corrupt content, disk space etc. just to name a few.
It is rather painstaking though in SCCM that you cannot refresh multiple items from the console, limited to using the distribution point content in monitoring to refresh by content only and not by distribution point . Luckily though there is a script to do the work for you.
This script checks all packages assigned to a distribution point and redistributes any packages that have an error status.
To use the script (Download at the end of the post), modify the VBS file to put in your server details in the variable section
‘ The name of the CAS/Primary site server
Public Const CASServerName = “CASorPRIServer”
‘ Which DP to refresh packages for – leave this blank to check ALL DPs
Public Const DPServerName = “DPServer”
Once done open Command Prompt as administrator. Change Directory to where the script it stored and type in cscript DP_Refresh.vbs press Enter
The script will now refresh the DP, you can view the status in the console.
Download Script Here