After installing the 1.3 version of the ASDK, getting errors with the Software Delivery DLL.
|Article:HOWTO5605|||||Created: 2006-10-26|||||Updated: 2006-10-26|||||Article URL http://www.symantec.com/docs/HOWTO5605|
After upgrading the Notification Server with the 1.3 version of the ASDK the following error shows when connecting to the http://localhost/Altiris/ASDK.NS.SoftwareDelivery/SWDSolnProgramManagementLibService.asmx SOAP interface. SWD is the only one giving us this error.
The ASDK has been uninstalled and reinstalled on the server, but the following error persists.
Server Error in '/Altiris/ASDK.NS.SoftwareDelivery' Application.
File or assembly name Altiris.NS.SoftwareDelivery, or one of its dependencies, was not found.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.FileNotFoundException: File or assembly name Altiris.NS.SoftwareDelivery, or one of its dependencies, was not found.
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Assembly Load Trace: The following information can be helpful to determine why the assembly 'Altiris.NS.SoftwareDelivery' could not be loaded.
=== Pre-bind state information ===
LOG: DisplayName = Altiris.NS.SoftwareDelivery, Version=6.1.1044.0, Culture=neutral, PublicKeyToken=d516cb311cfb6e4f (Fully-specified)
LOG: Appbase = file:///D:/Program Files/Altiris/Altiris ASDK/Web/ASDK.NS.SoftwareDelivery.Web
LOG: Initial PrivatePath = bin
Calling assembly : (Unknown).
LOG: Publisher policy file is found at C:\WINDOWS\assembly\GAC\policy.6.1.Altiris.NS.SoftwareDelivery\6.1.1034.1018__d516cb311cfb6e4f\policy.6.1.Altiris.NS.SoftwareDelivery.dll.config.
LOG: No redirect found in host configuration file (C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet.config).
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\config\machine.config.
LOG: Post-policy reference: Altiris.NS.SoftwareDelivery, Version=6.1.1044.0, Culture=neutral, PublicKeyToken=d516cb311cfb6e4f
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/altiris_asdk.ns.softwaredelivery/e27423c6/c8abd285/Altiris.NS.SoftwareDelivery.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/altiris_asdk.ns.softwaredelivery/e27423c6/c8abd285/Altiris.NS.SoftwareDelivery/Altiris.NS.SoftwareDelivery.DLL.
LOG: Attempting download of new URL file:///D:/Program Files/Altiris/Altiris ASDK/Web/ASDK.NS.SoftwareDelivery.Web/bin/Altiris.NS.SoftwareDelivery.DLL.
LOG: Attempting download of new URL file:///D:/Program Files/Altiris/Altiris ASDK/Web/ASDK.NS.SoftwareDelivery.Web/bin/Altiris.NS.SoftwareDelivery/Altiris.NS.SoftwareDelivery.DLL.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/altiris_asdk.ns.softwaredelivery/e27423c6/c8abd285/Altiris.NS.SoftwareDelivery.EXE.
LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/altiris_asdk.ns.softwaredelivery/e27423c6/c8abd285/Altiris.NS.SoftwareDelivery/Altiris.NS.SoftwareDelivery.EXE.
LOG: Attempting download of new URL file:///D:/Program Files/Altiris/Altiris ASDK/Web/ASDK.NS.SoftwareDelivery.Web/bin/Altiris.NS.SoftwareDelivery.EXE.
LOG: Attempting download of new URL file:///D:/Program Files/Altiris/Altiris ASDK/Web/ASDK.NS.SoftwareDelivery.Web/bin/Altiris.NS.SoftwareDelivery/Altiris.NS.SoftwareDelivery.EXE.
Software Delivery Solution 6.0.x (not the latest version)
The fact is that this 6.1.1044 version doesn't exist in any released version of the Software Delivery solution. Even though this is the case, the redirection is correctly in place that if the latest versions officially available are installed, this problem will not show up. As long as the minimum latest version (6.1.1034.1018 or later) of the Software Delivery solution assembly installed (let's say they only have 6.1.1034 installed), then .NET will be able to find and load Altiris.NS.SoftwareDelivery.dll..
The publisher policy that was installed when a given customer installed the Software Delivery solution presumably redirects requests for the Altiris.NS.SoftwareDelivery assembly from 6.1.0 through 6.1.1033 to 6.1.1034. Since the .NET loader is looking for version 6.1.1034.1018 or later, that publisher policy does no good in this case.
There is no publisher policy that the ASDK itself could install that would change this. The problem is not an unmatching version of an ASDK assembly; it is an unmatching version of the Software Delivery Solution assembly.
NOTE: The following should not be done unless there is an overwhelmingly compelling reason that upgrading to the latest Software Delivery Solution cannot be done *and* the ASDK 1.3 must be installed. The ASDK cannot be supported in this situation as it has not been tested.
If there is some compelling reason that upgrading the Software Delivery solution is not feasible at the moment, then a suggested way to work around this is by manually adding a binding redirect to the machine.config file. This binding redirect would redirect a request for the 6.1.1044 SWD assembly to the 6.1.1034 assembly that is present on the Notification Server machine.
This is done by putting the redirection in the machine.config file located at: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG
The following redirection should be added inside the closing <\configuration> tag at the end of the file:
<assemblyIdentity name="Altiris.NS.SoftwareDelivery" publicKeyToken="d516cb311cfb6e4f" culture="neutral" />
<bindingRedirect oldVersion="126.96.36.199-6.1.9999.0" newVersion="6.1.1034.0" />
The way to find out which version is installed in the GAC is by using the Start menu and Run the following: %windir%\assembly\gac This will open the GAC folder. The next thing to look for is the "policy" folders, specifically the folder "policy.6.1.Altiris.NS.SoftwareDelivery". It might be only "policy.6.0.Altiris.NS.SoftwareDelivery" depending on how old the copy of the Software Delivery solution is. Open the folder in question and there could be one or more additional folders. Open the folder with the largest minor version and there will be a .config file. This file can be opened by any text editor and contains the exact version that is installed within the GAC. The following image should illustrate if this is somewhat confusing. The .config file is an XML file which contains the tags and information mentioned above. It can be copied into the machine.config file with only a minor change to the "oldVersion" as shown above.
NOTE: Redirection is normally done to newer versions. This information is showing how to redirect to an older version. This is not how it is normally done. And though it may work, it will not be supported.
Although this approach has been tried (again not thoroughly tested) and appears to work, i.e., the SWD assembly loaded successfully, it cannot be guaranteed that the older SWD assembly will actually perform its work as expected with the newer ASDK assembly although there is no reason at the moment to believe it wouldn't. But again, the best and recommended approach would be to update the Software Delivery solution since the ASDK in this scenario cannot be supported.
Article URL http://www.symantec.com/docs/HOWTO5605