I have 17 simple data entry applications(.net version is 3.5, designed in asp.net, coding language is c# and database is Oracle 10g) hosted under one application pool which is configured on IIS7 as .Net Framework Version = v2.0, Manged pipeline mode = Classic. My server is Windows server 2008 r2 64 bit with 32 GB ram.
Problem is one of my application started responding slowly, it was working fine before but now even pressing the tab key takes 2 to 3 seconds.
To check the problem I debugged the application in visual studio 2008 and it was working fine, then I configured the IIS7 on my PC and hosted the application from it and it was working fine( surprisingly my pc only have 4GB of ram and 32 bit windows 7 as operating system.)
I also tried DebugDiag on server to check the performance of w3wp.exe but couldn't find anything.
I also compared both the hosted applications (one from my local PC and one from server) using Firebug and fond under the .net tab that application hosted from server is taking more time, but I don't know the reason.
I also know for sure that database is not responding slow.
If someone can advice me how to check the problem that would be great,any advice would be appreciated.
Many thanks.
Related
I have a classic ASP application which I've moved from a Windows 2003 server running IIS6.0 to 64-bit Windows 2008 R2 running IIS7. In IIS7 I've created a website and added an application to that and have set the application pool to enable 32-bit applications.
The application connects to an Oracle database using the ORAOLEDB driver - I've installed the 64-bit Oracle client 11.2.0.3 to connect to the backend Oracle 11g database and can connect fine via the same user as the application using SQLPlus.
When I run the application though, its attempt to connect to Oracle fails with the IIS logs showing the error:
"Provider cannot be found. It may not be properly installed"
I've tried various possible things to try and get this working:
registering OraOLEDB11.dll manually
disabling 32-bit applications from the app pool
using the 32-bit drivers instead both with 32-bits apps enabled and disabled
reinstalling the drivers completely and trying all the above
So far without any luck. The asp code connects as follows:
objOracleConnection.CursorLocation = adUseClient
objOracleConnection.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=MYDATASOURCE;User ID=USER;Password=PASSWORD;PLSQLRSet=1;OLE DB Services=-2;"
objOracleConnection.Open
EDIT: I've tried a simple VBS script (using essentially the same code as above) to connect and it gets the same error, so IIS may not be the problem. The exact same script works on the Windows 2003 box however.
I've reinstalled the Oracle client via the 'Troubleshoot Compatibility' option, indicating that the application works under Windows 2003 SP1 but still get the same issue from both the VBS script and the IIS application :(
This is an educated guess, but enabling 32 bit applications in IIS7 seems to disable 64 bit applications. If it's a 64 bit driver you may need to disable 32 bit in your app pool
We are developed asp.net (.net 4 framework) web application and deployed in IIS 7 on Windows Server 2008.But when we host the web application on our IIS 5.1 server on my local machine ie,windowsxp machine it seems to be work faster than one deployed in the Windows Sever 2008 machine.
most probably the most number of user access the web application at the same is approximately 50 only... Do i need to change any setting in application pool on IIS7.
When deploying i have never changed any settings in IIS 7 on Windows Server 2008.I have deployed using Visual Studio 2010 support.
I don't know about the reason why it is acting like this?
So, Could you please tell me what are all the essential things do i need to change in IIS 7 and also Windows Server 2008 to speedup my web application...
Increase the worker process number in application pool such that it matches the processor cores (tetra core / penta core) in your windows-server machine so that it could make use of server effectively. But keep in mind, you have to choose SessionState other than In-Proc in your application if you increase your worker process number.
When I deploy my ASP.net 4 website on newly installed IIS 6 on Win Server 2003 R2 or on IIS 7 on Windows 2008 R2, I have a very good (actually instant) access to my website pages while calling them locally, but while trying to access them from any other intranet computer, the speed slows down very badly and I can not find what is the problem. It has been become a major problem for me and my job and I've been looking for a solution but I've not detected any solutions already. Would you please helping me?
By the way the users of this website will be at max 20 persons and I've deployed my app on a very very powerful dedicated server with about 64GB of RAM and 16 CPU cores.
Thank you so much.
This could be created by many different things such as:
Incorrect IIS configuration
Incorrect Routing
Database Latency
Server Over utilization
I would start by seeing if a static HTML page with no code is delivered quickly. If yes then I would look at using ASP.NET Tracing as a starting point to see where the problem in the code may be. If No then I would look at the IIS and routing configuration for your network.
I changed to forms authentication and I am getting very good speed results.
We are struggling to find out what could be the ASP.NET application performance decrease when we pass from our staging server to our production server and we would like to hear from you to help us find the bottleneck.
Our staging server is a Intel Core 2 Quad CPU Q8200 (2.33 GHz) with 4GB of RAM, Windows Server 2003 R2 SP2 x64 Edition. Databases are hosted on Sql Server 2008 Express Edition. Everything seems to work smoothly. Page change is almost immediate ad page load time (for example switching pages in a grid) is ok.
Our production server is a VIRTUAL double Intel Xeon 3.00 GHz with 2GB of RAM, Windows Server 2008 Web Edition SP2 x86 Edition. Database are hosted on Sql Server 2008 Web Edition.
Our application is a .NET 3.5 (migrating to .NET 4 in these days) using classical best practices (masterpages, CSS, AJAX, paging for data, client cache for static resources, gzip compression on IIS for static and dynamic resources, server side cache for data that doesn't change frequently...).
I really can't understand what can cause the application to run so differently between the two scenarios. What could that be? The missing RAM? The load on the production server? The network limit?
What can I do to narrow bottlenecks' research?
You could briefly enable tracing on your production server (don't forget to turn it back off) and see what stages of your page loading are taking so long).
If you can easily add 2 GB more of RAM to the virtual server, try that, it's easy and might matter. Check your RAM usage in task manager and see how much you're using.
Are these servers hosted at the same place or might there be network latency differences?
On the server, run perfmon.msc and watch the counters, what's maxing out?
I know it depends, but I am just curious what specifications others are using to run a simple site with a MS SQL Server back-end. What is recommended for the application, not the database?
If you're not talking about the database, I would say that running a simple MVC web application you would just need enough RAM to run whatever Windows OS you plan on deploying it under. You shouldn't need any more than the recommended amount.
So for example, here are the Windows Server 2008 requirements.
Would have to agree with Joe, the recommended RAM for running the OS should be sufficient. However, when you start to use resource hungry tools like SQL Server I would always recommend adding at least 1 GB.
You can run a simple MVC site on Windows XP with IIS 5.1 and SQL Server 2005 Express. Here are the system requirements for Windows XP.
RAM is so cheap now I would go with at least 2 GB.