Are there any tools to monitor IIS requests on a 64 bit server? - debugging

Are there any tools available to monitor all current IIS requests on a server? I have some requests that are hanging, and I'd like to be able to identify which requests are hung, and then kill those specific requests, without affecting the rest of the requests, or the server itself.
I know that the IIS toolkit has a tool called "Requests Viewer" that does most of what I need, but it doesn't work on a 64 bit server.
Does anyone know of a tool that will do this?

Did you try the x64 Trace Diagnostics tools? I haven't run IIS Request Viewer before, but it certainly appears that it would work on x64....
Edit: Trace Diagnostics specifically calls out "Windows Server 2003 Service Pack 2 x64 Edition" as a supported OS. Perhaps you have some other issue? Are you sure you're on x64 (yeah - I know, it's an odd question, but sometimes you have to ask...it could be ia-64 (Itanium))

You might be able to install a proxy before IIS that logs the requests.

Related

IIS 7.5 svchost.exe(ftpsvc) 100% cpu

I have a client with a server using IIS 7.5. They have an FTP service for their customers for use with their software package.
The server has been working flawlessly for years. Just over the last week the svchost.exe(ftpsvc) process is using 100% cpu. Until you reboot. Then it is good for a day or so and happens again.
The ftp site has anonymous connections disabled, and just basic passthrough authentication. When the server is at 100% I can remote into the server and see in IIS under FTP Current Sessions a few (10 maybe) of their customers hung in a RETR command. I am not sure if this is what is causing the issue or something else.
If anyone knows the best way to find the root cause of the problem I would appreciate any help you could give.
All windows updates have been installed.
Good afternoon Brian,
I experimented same behavior.
Can you check if you have KB4338818 installed?
It's seems to be the origin of this behavior.
I found this information here:
https://social.technet.microsoft.com/Forums/Lync/en-US/08662831-952f-4d86-b8e8-67874f117d98/july-2018-update-kb4338815-and-kb4338824-causes-issues-within-world-wide-web-publishing-service-on?forum=winserver8gen
After uninstall this update (KB4338818) the problem is gone.

How to install ColdFusion 9 in Windows 10 (IIS 10)

I'm wondering if anyone has ever figured out a way to install ColdFusion 9 in Windows 10 (IIS 10)? I understand CF 9 is not officially supported in Windows 10 / IIS 10, but I'm wondering if there is some clever way to make this work? Our ColdFusion production server is hosted by our ISP and we are unable to upgrade ColdFusion at this time, so I'm stuck with CF 9 for now. I would very much like to be able to continue to develop and test in the same version as our production server, and my new development machine is Windows 10.
I tried the CF 9 installer, chose the developer option, and got no errors until I got to the step where the installer wants to load the ColdFusion administrator page to complete the setup process where I promptly get a 404.3 not found error. I tried rebooting the machine, went to the CF admin and same results. After some further looking into this, I believe the issue was that the IIS handlers never got installed, so IIS did not know what to do with a CFM file. So even though the Admin files exist on the server, IIS doesn't know how to serve them to the browser.
When I try to use the Web Server Configuration Tool to set up IIS, it looks like it could work until I try to add all IIS websites and click OK at which point I get the error "Version 10.0 is installed. Supported versions are 4.x, 5.x, 6.x, 7.x". So might there be a way to fool the WSC Tool into thinking that IIS 10 is in fact IIS 7 or is that not going to help? I did take the step of adding the IIS 6-related management tools thinking that would allow the CF 9 installer to work with IIS 10 (this seemed to be necessary for IIS 7.x).
I have had a bit more luck running the 32-bit version of the installer, and trying to set it up with an Apache server instead of IIS, and it seemed to almost work but I am unable to create CF data sources using the ColdFusion admin, I get an error when I try to add a data source. It may have to do with some confusion about 32-bit versus 64-bit data sources, so I'll try to troubleshoot this approach some more.
Thanks in advance for any ideas/suggestions.

Out-of-band programmatic identification of Windows Server vs Client

I have some free-standing C++ code (i.e. not a Windows program) that needs to identify the version of Windows that is installed on a PC.
I can easily differentiate between the different Windows client releases by kernel version (e.g. GetFileVersionInfo on ntoskrnl.exe), however I'm wondering if there's a reliable way to distinguish between a client and server installation.
A problem arises when using this method to distinguish between Windows Vista SP2 and Windows Server 2008 SP2 (6.0 build 6002 the both of them) and Windows 7 and Windows Server 2008 R2 (6.1 build 7600 for RTM and 6.1 build 7601 for SP2, both). What is a reliable (and preferably as straight forward as possible, avoiding the registry would be great as access to Win32 API is not available) method of identifying client vs server OSes correctly for code running outside the environment?
I suppose I could check for files only present on the server edition (what's a good file guaranteed to be on any server edition install, regardless of configuration?), check the Panther folder (which is safe to delete, so no guarantees there), etc. but I'm sure this is a problem that people have run into before and (hopefully) solved more elegantly?
(Sidenote: this question has been asked on SO before, but the solution (WMI) is inapplicable for out-of-band checking)
I'm not entirely sure what you mean about out of band checking, so I'm going to ignore that for the moment.
The normal way would be to call GetVersionEx, and look at the wProductType member of the OSVERSIONINFOEX.
A PE image does NOT specify whether the image should work on a client or server. It only specifies the runtime requirements regarding subsystem, dependencies, memory, affinity, etc...
I ended up searching for a number of binaries in the system32 directory that are generally associated with the Server Edition of Windows. It's not very clean, but in practice it works very well.

Problem with Send Mail IIS System.Net.Mail Namespace Visual Basic visual-studio-2010

I downloaded the “Send Mail” VB10 sample from the Visual Basic 2010 Samples web pang and installed IIS (Internet Information Services 5.1) on my Windows XP Pro SP3 laptop. I was able to use the send mail sample instantly and went on to develop a more tailored program for sending mail. It all works great! However, when I take my laptop to different wifi network, with a different ISP (AT&T), something changes. My program still “seems” to work – it even gives me the “Mail Sent Successfully” message, but no mail makes it to it’s destination. Upon further investigation, I found that the outbound mail messages were accumulating in a folder called C:\Inetpub\mailroot\Queue.
What is causing this? Can I reconfigure something on IIS or within my VB10 program to make it work on AT&T? I have tried dozens of suggestions, but nothing has worked. I developed my program for the purpose of using it on the AT&T network – I need to have automated messages sent to me from that (AT&T) location. Can anybody help?
You need to setup IIS to forward the emails to your ISP so they can go out to the wide world.
Perhaps this KB article can help.
Also, see this ServerFault thread.

ASP.NET websites under IIS 7.5 (Windows 7) running extremely slow

I've just installed Windows 7 x64 Ultimate on my desktop PC. I installed IIS, Visual Studio 2008, registered ASP.NET, etc.
I have this ASP.NET 3.5 website I'm working on running EXTREMELY slow on this new IIS. On STA and PROD servers (Windows 2003 Server) and on my old XP/IIS 5.1 everything runs smoothly.
A page which usually takes 1-2 seconds to load is taking 8 seconds!!!
I saw this post on IIS forum. It says something about Vista/7 not pooling connections (just to let you know, the website is running locally but it's connecting to a SQL Server 2005 hosted on a remote server).
It seems that it takes a while to "start loading" the page... I mean, I click refresh and it stays for several seconds "Waiting for localhost"... Then when it gets response it loads the whole page normally...
I don't have a clue how to force Win7/IIS7.5 to pool database connections.
EDIT: I've created a new empty ASP.NET web application to see if the problems happens too. The answer is no, it responds fast as it should with an empty default page. Maybe is something related to the DB connection. I will do a further test. It should be a way to fix it...
EDIT 2: Debugging the app I noticed that the delay occurs AFTER the execution of .NET code (Page_Load, etc)... so the delay seems to be somewhere when IIS serves the page to the browser.
For those having the same problem, here's two possible solution.
1) Disabling IPv6 support in Firefox (only for Firefox)
Most of the authors that I found out about suggest this approach as quickest and cleanest solution. What you need to do is basically to open configuration settings in Firefox (about:config) and to change network.dns.disableIPv6 setting to true.
2) Change localhost settings in your hosts file (all browsers)
This came to me as an idea to check where and how can I interfere in IPv6 settings on my machine. I saw one of the comments on above mentioned sources saying that one can get rid of the problem by simply replacing localhost with machine name in the url.
It didn’t take me long to check and see that disabling my IPv6 localhost lookup does the same thing as disabling IPv6 directly in Firefox.
What you need to do is basically to comment / delete this particular line in your hosts file:
#::1 localhost
Note: ::1 notation is IPv6 equivalent of the IPv4 127.0.0.1 lookup address.
I believe the second solution might be more suitable for users who do not want to disable IPv6 in general, and the first one for all others that still do not use IPv6 in their regular work.
I was having the same issue: extremely dead slow site performance using IIS 7.5 on Windows 7 64-bit with a Core 2 Duo with 4GB RAM and 3 Application Pool Processes running only 1 website. Here's what I did to get the speed back to IIS, problem solved...
The trick for me was to run IIS using 32-bit workers, as instructed by Microsoft on IIS.net, which you can read here:
http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/
Simple solution provided (I don't want to rewrite it here)... Either you can run a 1-line command from the Windows Command Prompt or a 1-line command from Windows PowerShell. I just ran it from the command line (make sure you open Command Line or PowerShell as Administrator -- right-click > Run as Administrator).
Thanks,
Marty McGee
You can try running multiple processes as application pools:
Open IIS
Click Application Pools
Right click the app pool for your app
and click Advanced Settings
Find the
"Maximum Worker Processes" and update
it to 3 (or the number of processes
you want to allow to run).
I know the op was running IIS 7.5 and this may not apply to him, but I'm posting this as it might help others running IIS Express 8.0. I had the same problem and none of the IPv6 or hosts file changes worked for me. My asp.net MVC4 project was really slow after hitting F5 to refresh js changes on localhost. It was happening across all browsers - Chrome, FF, and IE. Eventually I discovered that IIS Express 8.0 is extremely slow when serving up js files and seems to be a bug. If I ran iisexpress on the command line and hit F5 I could see each js file took 4 or 5 seconds to load.
I ended up uninstalling IIS 8.0 and installing IIS express 7.5 and straight away the problem was fixed. Here are the steps I followed:
Uninstall IIS express 8.0
Delete the IISExpress folder (on Win 7 it's in My Documents\IISExpress)
Install IIS express 7.5 (Link to IIS Express 7.5 download)
IIS Express 8.0 seems to be installed with VS 2012 so if you had a new install or possibly a service pack update this might upgrade the previous IIS Express version.

Resources