IIS ARR/URL Rewrite wish list

Its nice to have the following features in the next release of ARR/URL rewrite

1) Ability to include complete list of IIS Server Variables.

2) Ability to define a rule to or not to rewrite request headers based on a condition (either POST value or request header value)

What I noticed is ARR rewrites request headers but with rules we cannot modify certain request headers like HTTP_REFERER etc.

3) Ability to inject C# code for pre and post request, response. The only way possible to do this is to define a HTTP module(only response stream can be modified not request).

4) Ability to define a rule that rewrites request header based on response stream matched value (with regex). Its not possible to modify response header by searching a response stream value.

Fixing SSRS Report Viewer control date picker in Google chrome

SSRS Report Viewer control works well in IE6+ but has some known compatibility issues with other major browsers(Firefox, Chrome etc.) around date picker and print button.

For more information read this


I am presenting a simple solution to fix date picker issue in Chrome with  a combination of some server side code and Client side JQuery script.


Server Side Code


1) Add the below code in the page/control file in which the reportviewer control resides

 <asp:HiddenField ID="DatePickers" runat="server" />


2) Add the below code in the code behind file of page/control in which the reportviewer control resides(.Net 2.0 version)

protected override void OnPreRender(EventArgs e)
  DatePickers.Value = string.Join(",",(new List(GetDateParameters()).ToArray()));
private IEnumerable GetDateParameters()
  // I'm assuming report view control id as reportViewer
  foreach (ReportParameterInfo info in reportViewer.ServerReport.GetParameters())
    if (info.DataType == ParameterDataType.DateTime)
        yield return string.Format("[{0}]",info.Prompt);


Client Side Code


1) Add the below script in the html head section


 if ($.browser.webkit)
    $($(":hidden[id*='DatePickers']").val().split(",")).each(function(i, item){
         var h = $("table[id*='ParametersGrid'] span").filter(function(i) {
             var v = "[" + $(this).text() + "]";
             return (v != null && v.indexOf(item) >= 0);
           showOn: "button"
           ,buttonImage: '/Reserved.ReportViewerWebControl.axd?OpType=Resource&Name=Microsoft.Reporting.WebForms.calendar.gif'
           ,buttonImageOnly: true
           ,dateFormat: 'dd/mm/yy'
           ,changeMonth: true
           ,changeYear: true



Hope this helps!!! Smile