Resolution to some problems you might encounter when upgrading to the Commerce Server Feature Pack

This post contains resolution for a list of problems you might face when upgrading to the Feature Pack. I have compiled this list based on the Newsgroup questions and I will keep updating this post with any new issues.

1. Unable to access the catalog web service due to the following exception:

System.IO.FileNotFoundException: File or assembly name 0x1gew0n.dll, or one of its dependencies, was not found. File name: "0x1gew0n.dll" at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Boolean isStringized, Evidence assemblySecurity, Boolean throwOnFileNotFound, Assembly locationHint, StackCrawlMark& stackMark) --- LOG: Attempting download of new URL file:///C:/WINDOWS/TEMP/6hg1.dll. The resolution for this issue is to grant write permissions on the temp directory mentioned in the above URL (C:/WINDOWS/TEMP) to the account running the ASP net worker process. By default, this will be the ASPNET account on Windows 2000 and 'Network Service' on Windows 2003.

2. If you get an error “The Catalog Schema does not correspond to this version of Commerce Server 2002.” it means that you have not migrated the catalog system.You should use the CatalogMigrationTool.exe to migrate the catalog system to the Feature Pack version. This is a command line tool and all the options are documented in the help file. 

3. Catalog migration fails with the following error:

Failed to migrate the catalog data. The following error was encountered: ALTER DATABASE statement not allowed within multi-statement transaction. sp_dboption command failed. The resolution for this is to run the following statement   EXEC sp_dboption 'catalog databasename', N'select into', N'true'   in the catalog database and then run the migration tool again.

4. Catalog migration fails with the following error:

Failed to migrate the catalog data. The following error was encountered: The procedure 'sp_fulltext_database' cannot be executed within a transaction. The resolution for this is to run the following statement   Exec sp_fulltext_database  'enable' in the catalog database and then run the migration tool again.

5. While Commerce Server 2002 allowed creation of catalogs with the same property as the ProductId and VariantId properties the Feature Pack does not allow catalogs to have the same property as the ProductId and VariantId.When you use the CatalogMigrationTool.Exe to migrate the catalog system, the migration tool will display a warning (in yellow text) containing the list of catalogs that have the same property as the ProductId and VariantId. You should use the -N option of the CatalogMigrationTool.Exe to change the VariantId property of these catalogs to a different property. The new VariantId property should exist in the catalog system, not exist in the current catalog, should not be multilingual and should have an integer, biginteger or string datatype with maxlength less than 256. If you have XML files with catalogs containing the same property as ProductId and VariantId and you are unable to import them in the Feature Pack, then there is a separate topic in the documentation which contains relevant information on transforming these xml files to the Feature Pack compatible xml files.

6. Commerce Server 2002 supported a built in display name property for categories but not for products. One way to associate a display name for products in CS2002 was to create a multilingual custom property (for eg Name), add it to the product definition and use it to store the display name for products and then refer to the Name property in the recordsets/datasets. In the Feature Pack we extended the built in display name support to Products also. This means that you no longer have to create your own custom properties to store product display names but can use the DisplayName property instead. This makes storing and retriving displaynames consistent for categories and products. If you have existing catalogs which use a custom property for storing product display names then you can use the CatalogMigrationTool.exe with the -N option to  copy the existing product display name values to the built DisplayName property and then continue using the built DisplayName property. You might also have to modify the site code to use the DisplayName property in the recordsets/datasets to get the display names for  products. When performing this migration the current display name property that you are using for products should exist in that catalog and should be a multilingual property.

7. If you experience authorization errors (eg Scope does not exist, CatalogAuthorizationException etc) when using the Feature pack, then one possible cause is that your authorization policy is not in sync with your catalog system. This can happen if you upgrade your existing catalog system, create property definitions using Business desk or import catalogs using the COM/Interop catalog objects. The resolution is to run CatalogMigrationTool.exe with the -P, -U and -C options to update your authorization policy with the current contents of your catalog system. The path to the authorization policy for your catalog web service is stored in the authorizationPolicyPath attribute in the web.config file.  After you run the CatalogMigrationTool.exe you should review the CatalogMigrationTool.log file in the current working directory for any errors during the migration process.

8. The event viewer contains an error “The catalog Web service does not have write access to the authorizationPolicyPath. Verify that the file exists and that it has the appropriate permissions.“ after launching the CatalogManager application. The windows accont running the ASPNET worker process needs write permissions to the catalog authorization policy to create catalog and language scopes. See the “Assign Write Permissions to the Authorization Manager Policy“ section in the Install Guide to fix this.

9. When I launch the CatalogManager application the “Manage Catalogs” link is disabled.

After the catalog web service is installed you need to assign the windows users in your organization to the appropriate roles in the catalog system. If a user is not assigned to any role the “Manage Catalogs” link will be disabled. See the "Assigning Users Access to the Web Service Authorization Manager Policy" section in Commerce Server 2002 Help file for detailed information on the various roles, tasks and the steps for assigning users in your organization to the appropriate roles in the catalog system.Note that you need to perform the role assignments for the Marketing system also in order to use the Discount Manager application.

10. When I run the catalogmigrationtool with the following command CatalogMigrationTool.exe -S “Retail“ -M ,  I get an error “The operation specified is not valid“. 
      You can get the above error if one of the options to the catalog migration tool is not valid. However if you still get this error while specifying a valid option you can use the / character instead of - for specifying the options to the migration tool. In the above case you can specify CatalogMigrationTool.exe /S “Retail“ /M as options to the migration tool.

If you encounter any issues or need help with Commerce Server you can post your questions to the Commerce Server Newsgroups .

Comments

  • Anonymous
    June 23, 2004
    I have a problem - the Web Service fails with "The request failed with HTTP status 400: Bad Request."


    The full event log text is:
    Microsoft.CommerceServer.UI.ServiceConnectionException: The Catalog Web Service "http://localhost/CatalogWebService/CatalogWebService.asmx" is currently unavailable. The Web Service might be experiencing technical difficulties, or you may need to adjust your connection settings. ---> System.Net.WebException: The request failed with HTTP status 400: Bad Request.
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
    at Microsoft.CatalogServer.WebService.Proxies.CatalogWebService.AuthorizedInvoke(String methodName, Object[] parameters)
    at Microsoft.CatalogServer.WebService.Proxies.CatalogWebService.GetServiceVersion()
    at Microsoft.CatalogServer.Agent.CatalogContext.ValidateWebServiceVersion()
    at Microsoft.CatalogServer.Agent.CatalogContext.Create(ServiceAgent serviceAgent, DebugContext debugContext)
    at Microsoft.CatalogServer.CatalogContext.Create(CatalogServiceAgent catalogServiceAgent, DebugContext debugContext)
    at Microsoft.CommerceServer.UI.ConnectionCheck.ConnectToCatalogService(String catalogServiceUrl, String[] authMethods, IPromptForCredentials credentialPrompter, IWebProxy proxy)
    --- End of inner exception stack trace ---
    at Microsoft.CommerceServer.UI.ConnectionCheck.ConnectToCatalogService(String catalogServiceUrl, String[] authMethods, IPromptForCredentials credentialPrompter, IWebProxy proxy)
    at Microsoft.CommerceServer.UI.CatalogManager.LaunchPad.LoadDefaultSiteUrlConnection()