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
Article Type
How To


Problem
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.

Source Error:

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.

Environment
NS 6.x
Software Delivery Solution 6.0.x (not the latest version)

Cause

This is because the ASDK v1.3 "integration" assembly for Software Delivery (Altiris.ASDK.NS.SoftwareDelivery.dll) was built against a DLL given to the ASDK dev team by the Software Delivery Solution dev team This DLL was tagged with a version of 6.1.1044.

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.

Resolution

First and foremost, the ideal solution would be to make sure that the Software Delivery solution is completely current with all the latest hot fixes. As of the evening of Oct. 31 06, Service Pack 2 for the Software Delivery solution was released. This is version 6.1.1049.


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: 
 
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Altiris.NS.SoftwareDelivery" publicKeyToken="d516cb311cfb6e4f" culture="neutral" />
        <bindingRedirect oldVersion="6.1.0.0-6.1.9999.0" newVersion="6.1.1034.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
 
This was quickly tried, but not thoroughly tested, running Altiris.NS.SoftwareDelivery 6.1.1034.0 so the redirection is being done by build.  Although not 100% sure, it is believed that this should also work redirecting by a minor version.  Basically newVersion="value" needs to be changed to whatever version of Software Delivery that has been installed in the GAC.

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.

Legacy ID



28959


Article URL http://www.symantec.com/docs/HOWTO5605


Terms of use for this information are found in Legal Notices