Archives
-
Sample Script to Verify IIS File Versions for KB973917
Microsoft recently released an update for Internet Information Services (IIS), as described in the following article:
-
64 bit IIS manager,32 bit worker process and root web.config settings
The IIS 7 manager provides a UI for almost all sections for the web.config. It does simplify things for administrators but I have seen a couple of cases where this has lead to interesting problems.
-
How To: Collect a Crash dump of an IIS worker process on IIS 7.0 (and above)
Web server Administrators have been using the Debug Diagnostic 1.1 to troubleshoot crash\hang issues on IIS 5 and 6. The Debug Diagnostic tool needs no introduction. It is a great tool and it provides you a lot of flexibility in collecting crash dumps for any user mode process running on a server. But as of now, the Debug Diagnostic tool is *not* compatible with Windows Server 2008 and it is recommended that you not use it on a Windows 2008 server because you may get unexpected results. The good news is that the Debug Diagnostic team is currently working on releasing a version that is compatible with Windows 2008, but what to do until that time?
-
Configuring FTP 7.5 with Host Header and SSL
FTP 7.5 comes with new features like supporting Host headers (Virtual host) and SSL. For compatibility purposes, FTP clients can check whether the FTP server supports host headers by sending a FEAT command to check for supported features. An FTP server would respond with HOST being one of the extended features supported by it and from here on client can use this feature.
-
Configuring DebugDiag to Automatically Capture a Full User Dump on a Managed Function
I recently worked an issue with a customer where we needed to capture a full user dump of the IIS worker process when a specific function was being called. The problem was that the function was in managed code. I thought it would be good to share how to do this with the Web Topics Community. I will first show how to set a managed breakpoint in a normal debugger. Then I will show how to automate it with DebugDiag, and have it take an action of creating a full user mode dump file when the breakpoint is hit.
-
A Tale of Two Developers and Visual Studio Sites and Apps
We've encountered several scenarios in which customers have multiple developers working on a single web application in Visual Studio. In such cases, it's not uncommon for each developer to be working on a portion of the application. There isn't any problem in working with this way, but you may encounter some very real problems when you deploy your application unless you plan in advance.
-
ASP.NET MVC: What is it and should I use it?
In March of this year, we released ASP.NET MVC. Since then, many ASP.NET developers have been perplexed about MVC. Many developers aren't quite sure what MVC is and what it means for ASP.NET developers. Many more developers have some level of understanding when it comes to MVC but are not sure when it should be used and why. This post will hopefully shed some light on some of the confusion surrounding MVC.
-
High memory in IIS due to scriptproxy.dll
One of my customers had a problem on his IIS server, where the IIS process hosting his web application was suffering from very high memory utilization over time. Eventually the process got so high in memory that the web application became completely unresponsive and incoming requests were no longer getting served. Based on these details, we began troubleshooting the issue as a memory leak/high memory issue.
-
Deadlock when storing Asp.net sessions in SQL server during peak load
When there is more than 1 server in web farm scenario it is an obvious choice to go for session out-of-proc either with SQL server or State server. While storing session with SQLServer if you see issues with SQL deadlock during peak loads involving DeleteExpiredSessions . It goes like this…
-
Using ProcDump.exe to monitor w3wp.exe for CPU spikes
Procdump is a light weight Sysinternal's command-line utility whose primary purpose is monitoring an application for CPU spikes and generating crash dumps during such spikes which an administrator or developer can use to determine the cause or to share the dump with PSS for further analysis. It also can serve as a general process dump utility that you can embed in other scripts.
-
IIS7 (and above) – Using FREB to capture dumps for a long running request
In my previous post, I wrote about using FREB to troubleshoot a simple error message to identify the module which sets the error. For this post, let’s assume we are troubleshooting a slow running page (any page, be it aspx, asmx, html, etc). Not always I would recommend you to collect a dump to understand what’s going on inside. There are a few other ways to troubleshoot a slow running page, say enabling FREB to find out which module is taking long time to process, using RSCA (runtime status control API) data to understand the state of the server, using ETW to understand what’s going on, etc.
-
Uploading a file using FileUpload control fails in IE8
I had another interesting customer issue this week, where in uploading a file using the FileUpload control was failing only with IE8. As you would do with any client-side issue, I started by collecting Fiddler traces for both the working (IE7) and non-working (IE8) scenarios. Following were the observations:
· IE 7
Content-Disposition: form-data; name="targetFile"; filename="C:\Users\<username>\Desktop\test.txt"
· IE 8
Content-Disposition: form-data; name="targetFile"; filename="test.txt" -
In-Proc Session State Management
A session is defined as the period of time a unique user interacts with a particular web application.
-
Getting the Sys.WebForms.PageRequestManagerParserErrorException while making an AJAX callback
Recently I encountered an issue wherein our customer was running into a client side AJAX exception, Sys.WebForms.PageRequestManagerParserErrorException, while trying to make an Async Postback from an ASPX page. This exception was happening for all the clients in a specific network and looked like this:
-
“Parser Error Message: This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.” when .net page has debug=”true”
Recently, I came across an issue where the customer faced an FIPS (Federal Information Processing Standards) related error on the .aspx pages which had debug=”true”. His ASP.net application was hosted on IIS7 running on Windows Server 2008 SP2. And, he was able to reproduce the issue using a very simple page. The error message was:
-
Troubleshooting HTTP 401.3 errors with Process Monitor
Last week I posted the following blog which showed how to use Process Monitor to troubleshoot service startup issues.
-
How to Add a Locked Header Row to an ASP.NET GridView Control
The GridView control is often used to display tabular data, much like an Excel spreadsheet. However, unlike Excel, the GridView control doesn't have any automatic way of locking the header row so that it doesn't scroll out of view.
-
Getting access denied error when querying for user Roles using Authorization Role Manager
Recently I was working on an AuthorizationRoleProvider issue for an ASP.Net application. Customer was using Authorization Role Manager for the Role management of the Active Directory users.
-
Intermittently System.Web.HttpExceptions(A field or property with the name ’<columnName> ‘ was not found on the selected data source) is thrown when the application is under heavy load
Working on another interesting case where we were occasionally failing with HttpException and after hitting refresh on the browser we were back in business.Next stop was to look at event viewer where bunch of unhandled exceptions like below were reported: -
Fix: UpdatePanel Async Postbacks Slow in Internet Explorer
We've seen a few issues recently where customers were experiencing very slow async postbacks via an UpdatePanel, but only in Internet Explorer. Other browsers worked fine. (When I say "very slow," I mean in the neighborhood of 30 seconds!) The cause for this isn't a mystery to us.
-
Troubleshooting service startup issues with Process Monitor
Many things can cause a service, like IIS’s World Wide Web Publishing Service, to fail on startup. When troubleshooting such an issue, Process Monitor can be an invaluable tool. What Process Monitor does is monitor all File and Registry access on the system in real-time. The latest version of process monitor can be obtained here.
-
Troubleshooting a simple error message using FREB
FREB (Failed Requests Tracing – formerly known as Failed Request Event Buffering) is one of the nicest features released with IIS7 which would come in handy during troubleshooting. It does request based tracing, and produces a log file (in .xml format) that shows events and notifications from the various modules that worked on the request during its lifecycle.
-
Why System.Net.WebException comes up post .NET Framework 3.5 SP1?
-
Troubleshooting System.OutOfMemoryExceptions in ASP.NET
When the .NET Framework was first released, many developers believed the introduction of the garbage collector meant never having to worry about memory management ever again. In fact, while the garbage collector is efficient in managing memory in a managed application, it's still possible for an application's design to cause memory problems.
-
3 Simple Steps for Configuring an SPN for your Website
The following article is an excellent reference when trying to figure out how to set SPN’s for your IIS Site.
-
ASP.NET April 2009 Hotfix Rollup Available
Late last month we released a hotfix rollup that includes several fixes. We released these fixes in a rollup because we felt that many customers would be impacted by these issues and we wanted the fixes available to you easily without having to call and open a support incident.
-
HttpException Due to Invalid Viewstate After Installing .NET Framework 3.5 SP1
-
How To View what ASP.NET Requests are doing at runtime on IIS 6.0
This is just a quick blog to mention a forgotten tool. The managed stack explorer can be run on an IIS 6.0 Server running ASP.NET 2.0 to investigate the managed call stacks. Looking at the call stacks when an ASP.NET application is not responding may help identify what the requests are doing.
-
Caution while xcopying IIS 7.0 config files
Metabase.xml is the central store where IIS 6.0 stores most of its configuration information. Its a plain text file and stores all the information in a simple XML format. The XML format naturally raised a notion of being able to XCOPY the config file to another server and transferring the settings with it. But if you copy over a metabase.xml file from another server your IIS admin service will no longer start. This happens because the metabase.xml file contains ACLs that control access to any metabase key. Stored under the AdminACL tag these keys are encoded based on the machinekeys of the server. When you move the metabase.xml to another server the keys can no longer be decoded and hence your IIS Admin service will not be able to start.
-
Changes to Application Pool identities in IIS 7.5 [BETA]
IIS 6.0 introduced a lot of features to increase reliability and security. As an architectural change the worker process w3wp.exe was introduced. To increase security IIS 6.0 by default launched the worker process using the NTAuthority\Network Service account. Network Service is a low privilege predefined account that was introduced in Windows 2003. All guidance/documentation recommend running the worker process under the Network Service.
-
High Memory due to System.WeakReference
-
ASP.NET - AJAX functionality not working on the page | Getting ‘Sys’ is undefined
When the ASP.NET AJAX Functionality is not working on a web page, it is usually due to the fact that the javascript needed for AJAX is not sent to the client from the server for some reason.
-
Troubleshooting HTTP Compression in IIS 6.0
Cross-posted from http://blogs.msdn.com/mike
-
Internet Explorer resets the TCP connection after receiving an HTTP response from IIS
A problem was seen where Internet Explorer clients would reset the TCP connection between them and the IIS server when they received an HTTP 200 response for static content from IIS. The problem manifests itself to end users as slow performance of the web application they are browsing to. In a network trace, we could see that when the client was making its request, it was including the If-None-Match and If-Modified-Since headers in its request. It was doing this because the client (IE) had a version of the requested resource already in its client-side cache. By sending these headers, the client is essentially telling the web server to only send the resource back as a response IF the content is newer than that which is in the client side cache. The client's request looks like this:
-
HTTP 400 Bad Request when client terminates request headers improperly
-
HTTP 400 Bad Request when client sends invalid HTTP:Host header value
-
SCCM 2007 Charting functionality does not work on 64 bit IIS
System Center Configuration Manager (SCCM) has a nice functionality of displaying report data as charts. When deployed on a 64 bit IIS 6.0 machine these chart displays may stop working and you will start getting the following error message.
-
ASP.net Hang in IIS 7.0
When hosting an ASP.net web application on IIS7, and you have the application running in integrated pipeline mode, you may find that users complain that the application performs slowly. This may occur if your website is busy, handling 12 or more requests concurrently, and those requests are handled asynchronously as opposed to synchronously. The same application may appear to not suffer from poor performance when hosted on an IIS 6.0 server, or if the IIS7 site is set to run in Classic mode.
-
WebBaseEvent.Raise method fails in Application_Start event with a NullReferenceException on IIS 7.0
If you implement custom health monitoring events in ASP.NET chances are that you should have worked with WebBaseEvent or WebErrorEvent classes and used the WebBaseEvent.Raise() method to fire those events. Recently an interesting issue related to this WebBaseEvent.Raise() was brought to my notice.
-
Metabase auditing on IIS 7.5 [BETA]
Metabase auditing is a very useful feature which allows us to track changes that are made to the IIS metabase. It was introduced with SP1 on Windows 2003 (IIS 6.0). When enabled information such as time and user account that made the change to the metabase get logged to the event logs which can be very useful to track changes.
-
Report Viewer Toolbar does not render properly on IIS 7.0
I was recently working on a reporting web application that uses the Report Viewer ( ReportViewer ) control that ships with SQL Server Reporting Services (SSRS). The Report Viewer control was rendering perfectly when I was developing using Visual Studio 2008. The trouble started when I published the web application to an IIS 7.0 server. The Toolbar was completely broken and showed up something like this.
-
SSL stops working in IIS7
Thanks to Robert Patrick for submitting these issues
-
<location> Tag Causes Local Automatic ASP.NET debugging not to work in Visual Studio
This week I got an interesting issue altogether. One of my customers was unable to debug ASP.NET 3.5 application locally using Visual Studio 2008. The application was created using Web Application Project. When we started the application using "Start Debugging (F5)", page came up fine but debugger was not getting attached to process. In Visual Studio we could still see the "Play" button for starting debugging. We didn't get any errors either in Visual Studio or in Event Logs. At the same time when we try attaching the Visual Studio debugger manually then it worked fine.
-
Issue with publishing web-site as non-updatable with "Use Fixed Naming and Single Page Assembly" and assembly versioning
Few days back I came across an issue with Publish Web Site and assembly versioning. One of my customers was trying to publish a web site as non-updatable with "Use Fixed Naming and Single Page Assembly" option. Also at the same time they are setting the assembly version to the assemblies as well. In this scenario once publish was completed, few assemblies were missing the version information (all those pages had huge HTML strings in the aspx source).
-
Issue with ActiveDirectoryMembershipProvider and account lock policy
Recently I was working on issue with ActiveDirectoryMembershipProvider of ASP.NET 2.0 and I came across interesting finding which I thought of sharing.