I have an ASP.NET web site on a shared server. The site is mainly used to house some WCF services that are used by a desktop application.
We had a problem in that the server stopped responding, and the hosting company said that the application pool logs showed that we had hit our memory limit (500Mb), which caused the application pool to recycle.
I need to find out what is causing the memory problem. The code is all C#, no unmanaged calls at all. It's a tiered application, with the WCF layer being very thin, basically passing calls through to the service layer. The service layer uses a repository layer to do the database access (via Entity Framework), and all dependencies are injected. Don't know if there are any more technical details that are relevant. If so, please comment and I'll add them in.
There are only about three users for the application, so it's very unlikely to be a sheer size of usage.
As this is a shared server, I do not have any direct access to it, therefore cannot use any profiling tools that require attaching to the process etc. Anything I do has to be written in the C# itself.
I thought about setting up a test environment locally, and hitting it with loads of service calls, but as I don't really know exactly what the users are doing, it's hard to know if I would be reproducing the production scenario.
Is it possible to see what memory the web site is using from C# code, so I can see what's happening on the production server?