Hi Christian, I'm unfamilar with the asynchronous service. Did you deploy manually, or using the IIS/HTTP iApp template? We're going to be publishing a template for CRM in a few days, BTW, so keep an eye out for that here: https://devcentral.f5.com/wiki/iapp.Codeshare.ashx
The first thing I might try is adding an iRule to the CRM virtual server to log all requests and responses, for example:
when HTTP_REQUEST {
log local0. "Request:[HTTP::host][HTTP::uri]:[HTTP::header names]"
foreach cookie [HTTP::cookie names] {
log local0. "Cookie name: $cookie, Cookie value: [HTTP::cookie value $cookie]"
}
foreach aHeader [HTTP::header names] {
log local0. "$aHeader: [HTTP::header value $aHeader]"
}
}
when HTTP_RESPONSE {
log local0. "Response: [HTTP::status]:[HTTP::header names]"
foreach cookie [HTTP::cookie names] {
log local0. "Cookie name: $cookie, Cookie value: [HTTP::cookie value $cookie]"
}
foreach aHeader [HTTP::header names] {
log local0. "$aHeader: [HTTP::header value $aHeader]"
}
}
The fix may be something as simple as applying source IP persistence to the requests from the server running the asynchronous service, based on the URI identified by the previous iRule (because it may not support cookie persistence, for example). The iRule to do that would be something like:
when HTTP_REQUEST {
switch -glob -- [string tolower [HTTP::uri]] {
{
log local0. "Asynchronous service"
pool your_crm_pool_name
persist source_addr
return
}
}
}