The IIS log shows HTTP error 405
The uploader log contains the following lines:
- Error 0xE0500195: HTTP error 405
- Error 0xE050044D: Failed to create remote directory /ManageSoftRL
- Error 0xE0690099: Specified remote directory is invalid, or could not be created
- ERROR: Remote directory is invalid
- Uploading finished
HTTP error 405 means "Method Not Allowed" in this case uploading files via HTTP uses the MKCOL method which is part of the WebDAV Publishing component of IIS. When this error occurs during upload it means either WebDAV is not installed or is not configured correctly.
It could also occur if the HTTP handler node is missing or not correct in the web.config file - it is there by default but there have been instances where it's missing and the error has occurred as a result.
Installing WebDAV is covered in the linked article Q211707
for Windows 2008.
Windows 2003 installs WebDAV as a Web Service Extension and should be installed by default. To check this:
- Open IIS Manager
- Expand the Computer
- Click on the Web Service Extensions folder
- Does WebDAV appear in the list?
- If yes, is the status set to Allowed?
- If yes, access the Properties. What required files are listed and are they set to Allowed?
If WebDAV is not installed then you will need to install it via Windows Add/Remove Components:
- Open Control Panel
- Open Add/Remove Programs
- Click Add/Remove Windows Components
- When it opens highlight Application Server and Click Details
- Highlight Internet Information Services (IIS) and Click Details
- Highlight World Wide Web Service and Click Details
- Tick the box next to WebDAV Publishing and click OK until you return to the main Add / Remove components windows.
- Click Next and complete the Wizard
WebDAV should now be working so the final check is to ensure that the HTTP web handlers section is in the config file
Navigate to \Program Files\ManageSoft\DotNet
Open web.config in a text editor
Search the <system.web> node for:
<!-- To use SYNC Processing - use "ManageSoft.Import.Web.MgsSyncHandler".
To use ASYNC Processing - use "ManageSoft.Import.Web.MgsAsyncHandler".
IMPORTANT!: Whether to use SYNC or ASYNC must be determined individualy in each concrete given environment. -->
<add verb="PUT" path="*" type="ManageSoft.Import.Web.MgsAsyncHandler, ManageSoft.Import.Web"/>
<!-- Needed to give the MSG http agent side code the value it expects to find before attemtpitng PUT -->
<add verb="OPTIONS" path="*" type="ManageSoft.Import.Web.UniversalHandler, ManageSoft.Import.Web"/>
If the above section is missing from the &ltsystem.web&gt&nbspnode or is incorrect&nbsp/ commented out then the web handlers won't work and therefore error 405 will appear.
This article covers scenarios where the 405 error appears constantly. There are cases where 405 can occur intermittently and in those cases the problem is usually related to the web handlers being overloaded.
If this is the cause of the issue then the next upload should complete or you can attempt to improve performance by setting the following in the \ProgramFiles\ManageSoft\DotNet\web.config file:
<add key="ConcurrencyMaxLimit-logs" value="2"/>
<add key="ConcurrencyMaxLimit-inventories" value="2"/>
<add key="ConcurrencyMaxLimit-securityanalysis" value="2"/>
<add key="ConcurrencyMaxLimit-systemstatus" value="2"/>
<add key="ConcurrencyMaxLimit-discovery" value="2"/>
(all values were previously 10)
<add key="WorkloadMaxLimit-logs" value="4"/>
<add key="WorkloadMaxLimit-inventories" value="4"/>
<add key="WorkloadMaxLimit-securityanalysis" value="4"/>
<add key="WorkloadMaxLimit-systemstatus" value="4"/>
<add key="WorkloadMaxLimit-discovery" value="4"/>
(all values were previously 15)
Once you have saved the changes then you will need to perform an IIS reset so depending on your environment you might wish to schedule this out of hours.
In cases where the handlers are being overloaded there is no guarantee the above changes will work as it depends on how much data is trying to be processed, to see what is being uploaded navigate to:
You will need to change <DMServerHostName> to the hostname of your server and this URL will then produce results should how much traffic is occurring.
If there is a large amount you might want to consider staggering the upload times in the schedules, details are in the Software Deployment Guide > Scheduling Chapter > Triggers > To add a trigger then follow instructions for randomizing the frequency of the trigger.