Forum Discussion

jj_43958's avatar
jj_43958
Icon for Nimbostratus rankNimbostratus
Mar 15, 2019

SharePoint 2013 functions breaks after Big IP upgraded to version 14.2

We have a SharePoint 2013 On-premise custom application, which lost some functionality after our recent Big-Ip upgrade to version 14.2. The landing page with a few webparts (including a Calendar webpart) will only display if we disable compression, but then all SharePoint List functionality such as filtering on columns, sort, pagination, etc. don't work and when expanding ">" in a List that has been "Grouped by" columns, we see the message "Working on...". For the filtering problem, we see a message about "insecure" pages and have to allow the content to display, the filter then displays the list of selections, but then making a selection does nothing-no filtering occurs. We can fix these List issues with an iRule shown below, but then the webpart page will stop displaying. It seems like this iRule and the decompression are "working against each other". We have tried using iApp template 1.0.0, 1.2.2 and 1.2.3.

IRule:

when HTTP_REQUEST { tell server not to compress response HTTP::header remove Accept-Encoding

 disable STREAM for request flow
STREAM::disable

} when HTTP_RESPONSE { catch and replace redirect headers if { [HTTP::header exists Location] } { HTTP::header replace Location [string map {"; ";} [HTTP::header Location]] }

 only look at text data
if { [HTTP::header Content-Type] contains "text" } {

     create a STREAM expression to replace any http:// with https://
    STREAM::expression {@http://@https://@}

     enable STREAM
    STREAM::enable
}

}

Any idea how we can have both functionality working?

Thanks!

  • We resolved the issue with a different iRule and disabling compression. The IRule:

     

    when HTTP_REQUEST {

     

     Save the requested host value
    set host [string tolower [HTTP::host]]
    
     If the HTTP host header is blank, use the VS IP address
     If the VS IP is not routable for clients, hard code a routable IP
     to replace [IP::local_addr]
    if {$host eq ""}{set host [IP::local_addr]}
    
     Disable the stream filter by default
    STREAM::disable

    } when HTTP_RESPONSE {

     

     Check if response type is text and host isn't null
    if {[HTTP::header value Content-Type] contains "text" and $host ne ""}{
    
         Replace http://$host with https://$host
        STREAM::expression "@http://$host@https://$host@"
    
         Enable the stream filter for this response only
        STREAM::enable
    
    }
     Rewrite the Location header in redirects to https://
    if { [HTTP::is_redirect] && [string tolower [HTTP::header Location]] starts_with "http://$host"} {
        HTTP::header replace Location [string map -nocase "http://$host https://$host" [HTTP::header Location]]
    }

    }