Wednesday, October 08, 2008 #

Installing Silverlight 2 RC0

Installing Silverlight 2 RC0 may not be as straightforward as one would hope, especially if you have been installing the various betas that have been coming out along hte way.

From Scott Gu -

Important: We are releasing only the Silverlight Developer Runtime edition (as well as the VS and Blend tools to support it) today, and are not releasing the regular end-user edition of Silverlight.  This is because we want to give existing developers a short amount of time to update their applications to work with the final Silverlight 2 APIs before sites are allowed to go live with it.  There are some breaking changes between Beta2 and this RC, and we want to make sure that existing sites can update to the final release quickly once the final release is out.  As such, you can only use the RC for development right now - you can't go live with the new APIs until the final release is shipped (which will be soon though).

You can now download today's Silverlight Release Candidate and accompanying VS and Blend support for it.  Note that Expression Blend support for Silverlight 2 is now provided using Blend 2.0 SP1.  You will need to install Blend 2.0 before applying the SP1 service pack that adds Silverlight 2 support.  If you don't already have Blend 2.0 installed you can download a free trial of it. http://silverlight.net/GetStarted/sl2rc0.aspx

Do things in this order and you could save yourself a lot of time:

  • Install Visual Studio 2008 Service Pack Preparation Tool Removes beta's and other updates not compatible with RC0 Install Microsoft Visual Studio 2008 Service Pack 1 Make sure Visual Studio is up to date before we add any other tools to it
  • Uninstall Expression Blend 2.5 Preview if you still have it
  • Uninstall Microsoft Silverlight Tools Beta 2 for Visual Studio if you still have it
  • Re-Install Microsoft .NET Framework 3.5 Service Pack 1...just to be sure .NET framework is up to date (the prep tool somtimes removes 3.5 SP 1)
  • Install Microsoft Expression Blend 2 (required for Silverlight Tools)
  • Install Microsoft Expression Blend 2 Service Pack 1 Preview (required for Silverlight Tools)
  • Install Microsoft® Silverlight™ Tools for Visual Studio 2008 SP1 (RC0) Installs Visual Studio tools and Silverlight RC0 runtime
  • Install Deep Zoom Composer
  • Download Silverlight Toolkit
  • Off to the races!

posted @ Wednesday, October 08, 2008 4:17 PM | Feedback (2)

Friday, October 12, 2007 #

Exclude an inherited Product Relationship

As you may have read in the Commerce Server 2007 Catalog Manager Documentation, there are some elements of the Catalog that cannot be overridden in Virtual Catalogs.  One of these elements that has reared it's ugly head due to a specific requirement is  product relationships.

In the database, Viurtual Catalogs are actually nothing more than a view.  And with the way that these are set up, product relationships as well as other catalog elements such as category assignements cannot be overridden in a VIrtual Catalog.

Depending on the specifics of your solution, there are a few ways to get around this limitation:

  1. Do not use Virtual Catalogs - Make all of you product catalogs Base Catalogs. 
    *This will not be viable in many if not most situations because if you are using Virtual Catalogs, chances are that you need the convenience of being able to refresh them from the base.  This workaround would not enable you to use this feature.
  2. Create a copy of the product - In the base catalog, create a copy of the product that is to be excluded from the relationship in the base.  Set all of the categorizations and relationships that you do want it to have in the Virtual Catalog.  Then, delete the exclude the product from the Virtual Catalog and inherit/set an inclusion rule for the new one. 
    *The problem with this option is that you have to change the ProductId of the copied product because the ProductId has to be unique.  Changing the productId presents isues if you are passing this Product Id on to any other third party systems, such as a fullfillment center, unless extra logic is added to strip off a standard appendage to the ProductID when you are making a copy for this purpoise.
  3. **Use the description field or name of the relationship - In the relationship name or description field, you can store a magic value like 'exclude' or 'inactive', that can, in turn, be checked at runtime to see if the relationship is truly valid for this Virtual Catalog.  The only drawback to this option is that you will be using a magic value which breaks most best practice development standards but has no *real* side effects here. 
    *In my opinion, this option is the least evil of all of the options.

posted @ Friday, October 12, 2007 2:58 AM | Feedback (0)

Wednesday, April 18, 2007 #

Commerce Server 2007 Customers and Orders Manager

 
Does your Customers and Orders Manager Business Management application in Commerce Server 2007 hang or throw an error when you enter your credentials?
 
This may be related to your SSL Certificate.
 
A couple of things to check for if you are having issues with your customers and orders Manager:
 
  1. When loading the customers and orders manager you are required to enter the correct URL for the Catalog Web Service, Profile Web Service and Orders Web Service. Go through each one of these putting the URL you use into a web browser.
    1. If one of them does not load, check the error message on screen and in the Application Event Viewer and address that error accordingly. There are a million different things that could be going wrong.
    2. If they all load successfully in your browser, check to be sure that the orders web service and profiles web service are using HTTPS://.
      1. If they are not, try them with HTTPS:// and see if they load successfully.
        1. If they do not, check your error messages in the same manner as 'a.' above.
        2. If they do, is there an SSL warning?
          1. The SSL warning could be related to the certificate not being for the correct domain. This error MUST be corrected prior to being able to use the Customers and Orders Manager. The Customers and Orders Manager does not allow the user to ignore this error message therefore it just hang waiting for a response to this warning.
  1. IF you are getting an error message after entering your credentials and while the application is loading stating that you may not be able to perform all operations or you may not be able to perform a specific operation, check your permissions is azman.msc. 
    1. Start => Run => azman.msc
    2. Expand out 'profiles' and 'orders' after adding the correct authorization files to the console (.xml).
    3. Expand out 'role assignments' in each and be sure that the credentials you are using at the login prompt are in the correct roles (usually administrator).

I have spent many hours troubleshooting different configurations of the Business Management applications that ship with Commerce Server 2007 so feel free to contact me with your specific issues and I will do my best to assist you.

posted @ Wednesday, April 18, 2007 1:43 PM | Feedback (12)

Friday, March 09, 2007 #

Commerce Server SiteCacheRefresh.axd Error

You may have encountered an error when trying to run a Cache Refresh from within a Business Management Application such as the Catalog Manager or when trying to run a Commerce Server Staging Project with Refresh Cache enabled on one of the following resources (Catalog, Marketing or Orders).

Some of the errors logged to the event log could include a 404 error.  Where is this SiteCacheRefresh.axd file that is being requested when a Cache Refresh is executed.  The answer is that there is no such SiteCacheRefresh.axd file because it is actually an HTTP Handler that takes care of the SiteCacheRefresh.axd requests.

You can look to your Web.config file to find the HTTP Handler sections for this "file", but more on that later in this post.

So what about the error?  There are a couple of things that one can check.

First look to the Application Event log to pull out the requested URL.  It should look something like:

      http://<WebServerMachineName>/OrdersWebService/SiteCacheRefresh.axd?CacheToRefresh=CatalogCache

If you are getting a 404 error, there is most likely something out of whack in your IIS Configuration.

Commerce Server 2007 (and possibly earlier versions) use the MachineName of the Web Server to construct this URL by default.  It is not configurable out-of-the-box.  To solve this problem:

  1. Try bringing up a command prompt and ping your <WebServerMachineName>. 
  2. Take note of the IP address and go into IIS Manager and see which Application/Web Site is on that IP address. 
  3. Check to be sure that the OrdersWebService application or whatever follows <WebServerMachineName> in your request URL is, in fact, under that IIS Web Site/Application. 
  4. If it is not, you can either:
    • Move the commerce application under the one that IIS is directing the request to your machine name to
    • Add a virtual directory that points to the same directory as the actual OrdersWebService application points to
    • Add a Host Header Entry for the <WebServerMachineName> to the application that has your Commerce Application 

      The last of these options is probably the cleanest.

Now, for more on the HTTP Handler.  Why does all of this configuring in IIS matter?  The Web.config of a Commerce Server Application (or one of the Web Service Applications) has the needed HTTP Handler entries to handle the request for SiteCacheRefresh.axd.  If the application that your http://<ServerMachineName>...SiteCacheRefresh.axd points to does not have this web.config (specifically the HTTP Handler entries), the request for SiteCacheRefresh.axd will fall on deaf ears and IIS will have no idea what to do other than return a 404 or other related error.

You may already have another Site using the <WebServerMachineName> as a Host Header value, and you may not want to add your Commerce Server Web Service Application(s), Web Application or Commerce Web.config HTTP Handlers to this Site.  So, how do you change the <WebServerMachineName>?    The answer is in a new Hotfix from Microsoft, KB 91168.  I have to double check this KB number and I will update this post once I do so if this one is incorrect.  This Hotfix will add a registry setting that Commece Server will read which enables the SiteCacheRefresh URL to be built by IP or by Host Header by setting the registry value to either 1 or 0.  If you build the SiteCacheRefresh URL with the IP address instead of the <WebServerMachineName>, you can safely assign the IP that Commerce Server puts in the SiteCacheRefresh.axd URL to your Commerce Server Application (of course you will need another IP for the Site you stole this one from).  Requests for SiteCacherefresh.axd will then find the HTTP Handler information in the web.config of your Commerce Application and everything will be right in the world (well at least this particular Commerce Server world).  The knowledge base article mentioned above is not published yet; it is still being written but should hit the street at some point.  How do I know this?  I opened a support case with Microsoft and the Commerce Server Support Team really armed with the almost all of the information that you are finding in this post.

There are a lot other possibilities for the problems you may be encountering with SiteCacheRefresh so do not hesitate to comment on this post with questions you may have about your particlar solution and I will do my best to help out.

 

posted @ Friday, March 09, 2007 5:47 PM | Feedback (17)

Monday, February 12, 2007 #

Commerce Server 2007 - Custom Profile Properties

Out of the box there are 5 of those Custom Profile Properties (Data Members) to map custom user profile properties to. I know that I am going to need more than 5 of those. What is the proper way to add a new data member, say 'Custom Property 6' (u_Pref6), to the Commerce Server Manager User Object and then be able to use it in the Customer and Order Manager?  

I tried doing this myself and I got an error when I tried to create a new profile in the customer manager with this newly modified profile definition.  I was able to get the new custom property added to commerce server manager and I was even able to get the field to show up in the Customer Manager thanks to Nihit Kaul's post regarding how to do that. I was just unable to create a new profile in the Customer Manager after adding the new data member and tying a custom user object property to it. I feel pretty certain that the error was due to me not setting up the new Data Member correctly.

According to Jeff Lynch and my own experience, you must manually add the columns you need to support your custom profile properties to the 'userobject' table in the Profiles Database in order to store those values.  This is the same procedure used in Commerce Server 2002.

posted @ Monday, February 12, 2007 4:28 PM | Feedback (1)

Copyright © Bryan Kail

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski