views:

420

answers:

1

We are referencing a .NET Ajax dll within our website.

When I access a page within the site, I can see that there are different 'd' querystring parameters for the same Ajax handler when I load the page from a specific server as opposed to when making the same request through the load balancer (see below).

The t parameter is hashed from the datetime stamp of the dll, I can see why that would differ. But why would the d be different for the same dll reference & version?

Load Balancer

/ScriptResource.axd?d=PmKR-yELzZqHd6ahn_jO60nmNNm2-7DLsOUMBdWWoRvNOUcZqhzFBQ1SazOIb9JQY7eSczxTV7nTOIlKEZZBR7BKeRX9crISkYs8BdYxT941&t=3388055b

Specific Web Server

/ScriptResource.axd?d=_51rN8R7C6p5eAgxsk7XbD-wE3JMst-TGEsez2WKD6lGzlajzn_VD0vFY-jVyPFOhR177ar5QLKJSTtrzdEMxmpQ0soRnXJjGfBuzlffYxU1&t=ffffffffe4190d3a

+1  A: 

The hash value is calculated based on the "created" timestamp of the DLL in which the referenced script resides. If the two files have two different timestamps, the "d" value will be different.

These DLLs reside in the GAC (Global Assembly Cache). The specific DLLs we had problems with were System.Web.dll and/or System.Web.Extensions.dll.

A pain? Yes. The way we got around it was to copy the file from one of our two servers to the other. I think you can also do something similar to "touch".

Erich Musick