Включение ASP.Net 4.0

Потребовалось развернуть внутренний узел с поддержкой ASP.Net 4.0. Выбрал подходящий сервер c установленной Windows Server 2008 R2, установил роль IIS с необходимыми компонентами, добавил папку с содержимым узла, настроил доступ пользователей, создал и настроил узел с собственным пулом приложений, где выбрал ASP.Net 4.0:

Пул приложений узла local с ASP.Net v4.0

Пул приложений узла local

При запуске проверочной страницы Default.aspx увидел сообщение об ошибке:

Ошибка страницы Default.aspx

Ошибка страницы Default.aspx

На первый взгляд, причина была неясна, потому что страница доступна для изменения и имеет простой текст:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="DefaultPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:Label ID="Label2" runat="server" Text="Label">ASP.Net is working!</asp:Label>
    <br />
    <asp:Label ID="Label1" runat="server" Text="Label">Current user: </asp:Label>
    </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class DefaultPage : System.Web.UI.Page
{
  protected void Page_Load( object sender, EventArgs e )
  {
    Label1.Text += System.Security.Principal.WindowsIdentity.GetCurrent().Name;
  }
}

Следующим шагом проверяем работоспособность узла в принципе – создаем и успешно открываем html страницу:

<html>
<body>
Тестовая страница.
</body>
</html>

Пробежавшись по настройкам узла, функция .Net Compilation выдала ошибку:

Ошибка функции .Net Compilation

Ошибка функции .Net Compilation

Таким образом, обнаружена явная пробема с настройками ASP.Net. При этому узел по умолчанию на этом же сервере успешно запускается. Т.к. в его пуле приложений указан ASP.Net 2.0, то проблема в настройке именно версии 4.0.

Пул приложение узла по умолчанию с ASP.Net 2.0

Пул приложение узла по умолчанию

Чтобы подтвердить свою догадку, запускаем Internet Information Services (IIS) Manager, выбираем имя сервера и открываем фукнцию ISAPI and CGI Restriction.

Расширения для ASP.Net 2.0

Расширения для ASP.Net 2.0

Поскольку в перечне разрешен запуск только ASP.Net 2.0, необходимо воспользоваться утилитой aspreg_iis. Запускаем командную строку с правами администратора, устанавливаем ASP.Net 4.0:

c:WindowsMicrosoft.NETFramework64v4.0.30319aspnet_regiis.exe -ir
Start installing ASP.Net (4.0.30319) without changing existing web applications to use this version of ASP.Net.
.....
Finished installing ASP.Net (4.0.30319) without changing existing web applications to use this version of ASP.Net.

Однако, это еще не все. Обновив содержимое окна функции ISAPI and CGI Restriction, видим, что расширение установлено, но не разрешено.

Запрещенные расширения для ASP.Net v4.0

Запрещенные расширения для ASP.Net v4.0

В правой части видим пункт Allow, который поочердно вызываем для 32- и 64-разрядных версий.

Расширения для ASP.Net 4.0

Расширения для ASP.Net 4.0

Теперь, в браузере появилось правильное содержимое страницы Default.aspx.

Содержимое страницы Default.aspx

Содержимое страницы Default.aspx


  1. Все используемые IP-адреса, имена серверов, компьютеров, доменов, пользователей, являются фиктивными и используются исключительно в демонстрационных целях.
  2. Информация приводится «AS IS».

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.