I have a web server that I need to monitor the applications hosted in IIS6. Lite monitors transactions for whom the URI is handled by a specific web page, such as xxx.aspx or yyy.asmx. Our application uses an httpmodule (a .NET class) to inspect the incoming URI, examine the querystring, and execute code accordingly. It means we'll get a URI such as
http://server/something.exe?xyz=123:456:789
We match against the "something.exe", sort of a cgi-like syntax, with the querystring as the argument to the code that runs. (Note we aren't really doing CGI, the whole thing is run by the .NET code hosted in IIS).
Problem is, AppDynamics totally ignores anything that doesn't map to a specific web page. I tried adjusting the transaction detection settings to inspect the full URI instead of just the first two segments, but that didn't help.
Is there a way I can better configure the transaction detection to solve this?
Hi Jhancock,
We internally tried this with HttpHandler to handle ".exe" request(http://myweb.test:8010/Default2.exe). In our case the BT called "/Default2.exe" is identified.
In your case, we suspect that the issue could be with BT limit. AppDynamics Lite keeps a maximum of 30 business transactions at a time. If you see some Business Transactions, but not the ones you expect, you might need to exclude some existing ones before you can see additional ones.
If the BT limit is not the case, to troubleshoot the problem please attach the latest Agent logs. If possible a small sample code snippet from your Http Module class ( i.e. how you are handling the request). This will help us to isolate and troubleshoot the problem.
Thanks,
Venu.
I tried excluding the BTs that were working fine. Instead of allowing the desired BTs to show, I simply get an error saying no BTs have been detected.
We aren't using the httphandler class that you tried; we're using HttpModule. A code snippet that shows how we're using it is attached, and the agent log.
Hi Jhancock,
Thanks for sharing the AgentLog and HttpModule code snippet. The AgentLog file is full of below messages.
=====================================================
2014-03-05 10:02:56.1695 6160 w3wp 16 Warn ConfigurationChannel Could not connect to the controller/invalid response from controller, cannot get initialization information, controller host [localhost], port[8990], exception [System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:8990
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
--- End of inner exception stack trace ---
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
at System.Net.HttpWebRequest.GetRequestStream()
at AppDynamics.Agent.Communication.g.lq(Byte[] c, String i)
at com.appdynamics.ee.agent.appagent.dotnet.w.y()]
==================================================================
Please make sure that the LiteViewer is running. If the viewer is not running please start it by executing the "start-dotnet.bat"(By default located at <Installation Directory>AppDynamics\AppDynamics Lite for .NET\LiteViewer\").
Please let us know the BT name you are expecting to see in the viewer. Also please share with us the zip of complete "Log" folder. We would like to verify that is there any BT registered with ".exe" and if there are any other errors/warnings causing this problem. Mean time we will use your code snipped to repro the problem, and we will keep you posted our observations.
Thanks,
Venu.