<%@ Page Language="C#" AutoEventWireup="true" %> <%@ Import Namespace="System.Collections.Generic" %> <%@ Import Namespace="System.Diagnostics" %> <%@ Import Namespace="System.Globalization" %> <%@ Import Namespace="System.Linq" %> <%@ Import Namespace="System.Reflection" %> <%@ Import Namespace="System.Security" %> <%@ Import Namespace="System.Web.Compilation" %> ASP.NET MVC Diagnostics Utility <% DiagnosticsResults results = new DiagnosticsResults(); Action outputAssemblyInfo = assemblyInfo => { %>

Assembly version: <%= E(assemblyInfo.MvcAssemblyInfo.Name) %> (<%= E(assemblyInfo.MvcAssemblyInfo.Version) %>)
Full name: <%= E(assemblyInfo.FullName) %>
Code base: <%= E(assemblyInfo.CodeBase) %>
Deployment: <%= E(assemblyInfo.Deployment) %>-deployed

<% }; %>

Microsoft ASP.NET MVC Diagnostics Information

This page is designed to help diagnose common errors related to mismatched or conflicting ASP.NET MVC binaries. If a known issue is identified, it will be displayed below in red text.

For questions or problems with ASP.NET MVC or this utility, please visit the ASP.NET MVC forums at http://forums.asp.net/1146.aspx.

<% if (results.IsError) { %>

Errors were found. Please see below for more information.

<% } %>

Environment Information

Operating system: <%= E(results.EnvironmentInformation.OperatingSystem) %>
.NET Framework version: <%= E(results.EnvironmentInformation.NetFrameworkVersion) %> (<%= E(results.EnvironmentInformation.NetFrameworkBitness) %>-bit)
Web server: <%= E(results.EnvironmentInformation.ServerSoftware) %>
Integrated pipeline: <%= E(results.EnvironmentInformation.IsIntegrated) %>
Worker process: <%= E(results.EnvironmentInformation.WorkerProcess) %>
AppDomain: Homogenous = <%= E(IsAppDomainHomogenous(AppDomain.CurrentDomain)) %>, FullTrust = <%= E(IsAssemblyFullTrust(GetType().Assembly)) %>

ASP.NET MVC Assembly Information (System.Web.Mvc.dll)

<% if (results.LoadedMvcCoreAssemblies.Length == 0) { %>

An ASP.NET MVC assembly has not been loaded into this application.

<% } %> <% if (results.LoadedMvcCoreAssemblies.Length > 1) { %>

Multiple ASP.NET MVC assemblies have been loaded into this application.

<% } %> <% foreach (var info in results.LoadedMvcCoreAssemblies) { outputAssemblyInfo(info); } %>

ASP.NET MVC Futures Assembly Information (Microsoft.Web.Mvc.dll)

<% if (results.LoadedMvcFuturesAssemblies.Length == 0) { %>

An ASP.NET MVC Futures assembly has not been loaded into this application. <% if (results.LoadedMvcCoreAssemblies.Length == 1) { %> <% MvcFuturesAssemblyInfo futuresAssemblyInfo = GetOrCreateFuturesAssemblyInfo(results.LoadedMvcCoreAssemblies[0].MvcAssemblyInfo.FuturesVersion); %> <% if (futuresAssemblyInfo.DownloadUrl == null) { %> A download for this version of ASP.NET MVC Futures is not available. Pre-release versions of the MVC Futures assembly are no longer available once that version of ASP.NET MVC has gone RTM. <% } else { %> If desired, you can download <%= E(futuresAssemblyInfo.Name) %> from <%= E(futuresAssemblyInfo.DownloadUrl) %>. <% } %> <% } %>

<% } %> <% if (results.LoadedMvcFuturesAssemblies.Length > 1) { %>

Multiple ASP.NET MVC Futures assemblies have been loaded for this application.

<% } %> <% if (results.IsFuturesConflict) { %> <%-- We know that there's one version of Futures + one version of MVC loaded. --%>

Mismatched or outdated versions of ASP.NET MVC and ASP.NET MVC Futures are loaded.

Loaded version of ASP.NET MVC is: <%= E(results.LoadedMvcCoreAssemblies[0].MvcAssemblyInfo.Name)%> (<%= E(results.LoadedMvcCoreAssemblies[0].MvcAssemblyInfo.Version) %>)
Loaded version of ASP.NET MVC Futures is: <%= E(results.LoadedMvcFuturesAssemblies[0].MvcAssemblyInfo.Name) %> (<%= E(results.LoadedMvcFuturesAssemblies[0].MvcAssemblyInfo.Version) %>)
<% MvcFuturesAssemblyInfo futuresAssemblyInfo = GetOrCreateFuturesAssemblyInfo(results.LoadedMvcCoreAssemblies[0].MvcAssemblyInfo.FuturesVersion); %> <% if (futuresAssemblyInfo.DownloadUrl == null) { %> A download for this version of ASP.NET MVC Futures is not available. Pre-release versions of the MVC Futures assembly are no longer available once that version of ASP.NET MVC has gone RTM. <% } else { %> Download <%= E(futuresAssemblyInfo.Name) %> from <%= E(futuresAssemblyInfo.DownloadUrl) %>. <% } %>

<% } %> <% foreach (var info in results.LoadedMvcFuturesAssemblies) { outputAssemblyInfo(info); } %>

All Loaded Assemblies

<%= E(results.AllAssemblies.Length) %> assemblies are loaded.

Diagnostics version: <%= E(_utilityDate.ToString("D")) %> (<%= E(_utilityVersion) %>)
Report generated on: <%= E(DateTime.Now.ToString("F")) %>