Web Debug

Fix broken web applications, from servers to clients.

IIS Performance Optimization Guideline

Internet Information Services (IIS) exposes numerous configuration parameters that affect IIS performance. This topic describes several of these parameters and provides general guidance for setting the parameter values to improve IIS performance.

Reduced Security Footprint, Customized Installation Options

Because IIS7 is a completely modular Web server, Administrators have complete control over the surface area of the Web server. This enables several key advantages over previous versions of IIS:

  • Improve performance and reduce memory footprint. By removing unused server features, Administrators can also reduce the memory usage of the server, and improve performance by reducing the amount of feature code that executes on every request to the Web application.

  • Build custom / specialized servers. By selecting a particular set of server features, Administrators can build custom servers that are optimized for performing a specific function within the datacenter, such as edge caching or load balancing. Administrators can add custom features to extend or replace any existing functionality using your own or third party server components built on the new extensibility APIs. The componentized architecture will provide long term benefits to the IIS community, by facilitating the development of new server features as they are needed both inside Microsoft and among third party developers.

ViewStateUserKey and ViewStateMac validation failure

Previously I have posted on the validation of viewstate MAC failure. We already know that the validationKey and validation algorithm need to be the same across all the servers in a load-balanced environment. But user still see viewState validation failures in event logs.

Windows Authentication and Impersonation

Internet Information Services (IIS) provides several authentication schemes that can be employed when securing a Web application. Common scenarios include using Integrated Windows authentication (NTLM) within a corporate intranet to determine application users' identity based on their Windows login, or specifying a single anonymous identity for a particular application. The Windows identity supplied by IIS can then be used to determine whether the Web application has access to a protected Windows resource, such as a file protected using an Access Control List (ACL), or a network resource such as a file or database server. You can configure ASP.NET to use the Windows identity supplied by IIS using impersonation.

How to configure a service to start with the windbg debugger attached

You can use this method to debug services if you want to troubleshoot service-startup-related problems.

  1. Configure the "Image File Execution" options. To do this, use one of the following methods:
    • Method 1: Use the Global Flags Editor (gflags.exe)
      1. Start Windows Explorer.
      2. Locate the gflags.exe file on your computer.
        Note The gflags.exe file is typically located in the following directory: C:\Program Files\Debugging Tools for Windows.
      3. Run the gflags.exe file to start the Global Flags Editor.
      4. In the Image File Name text box, type the image name of the process that hosts the service that you want to debug. For example, if you want to debug a service that is hosted by a process that has MyService.exe as the image name, type MyService.exe.
      5. Under Destination, click to select the Image File Options option.
      6. Under Image Debugger Options, click to select the Debugger check box.
      7. In the Debugger text box, type the full path of the debugger that you want to use. For example, if you want to use the WinDbg debugger to debug a service, you can type a full path that is similar to the following: C:\Program Files\Debugging Tools for Windows\windbg.exe
      8. Click Apply, and then click OK to quit the Global Flags Editor.
How to capture a crash dump during application startup

As documented by Microsoft KB it is easy to capture crash dump when the application is up and running. However there are cases application crashes during startup. How to capture such crash dump during application startup?

Fork me on GitHub