Потребовалось развернуть внутренний узел с поддержкой asp.net 4.0. Выбрал подходящий сервер c установленной Windows Server 2008 R2, установил роль IIS с необходимыми компонентами, добавил папку с содержимым узла, настроил доступ пользователей, создал и настроил узел с собственным пулом приложений, где выбрал Asp.net v4.0:
При запуске проверочной страницы 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>
************************ End of Default.aspx *************************
************************ Default.aspx.cs *************************
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;
}
}
************************ End of Default.aspx.cs *************************
Следующим шагом проверяем работоспособность узла в принципе – создаем и успешно открываем <html> страницу:
************************ Test.html *************************
<html>
<body>
Тестовая страница.
</body>
</html>
************************ End of Test.html *************************
Пробежавшись по настройкам узла, функция .Net Compilation
выдала ошибку:
Таким образом, обнаружена явная пробема с настройками Asp.Net. При этому узел по умолчанию на этом же сервере успешно запускается. Т.к. в его пуле приложений указан Asp.Net v2.0
, то проблема в настройке именно версии v4.0.
Чтобы подтвердить свою догадку, запускаем Internet Information Services (IIS) Manager
, выбираем имя сервера и открываем фукнцию ISAPI and CGI Restriction
.
Поскольку в перечне разрешен запуск только Asp.Net v2.0, необходимо воспользоваться утилитой aspreg_iis
. Запускаем командную строку с правами администратора, устанавливаем Asp.Net v4.0:
c:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_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
, видим, что расширение установлено, но не разрешено.
В правой части видим пункт Allow
, который поочердно вызываем для 32- и 64-разрядных версий.
Теперь, в браузере появилось правильное содержимое страницы Default.aspx
.
1. Все используемые IP-адреса, имена серверов, компьютеров, доменов, пользователей, являются фиктивными и используются исключительно в демонстрационных целях.
2. Информация приводится «AS IS».