Потребовалось развернуть внутренний узел с поддержкой ASP.Net 4.0. Выбрал подходящий сервер c установленной Windows Server 2008 R2, установил роль IIS с необходимыми компонентами, добавил папку с содержимым узла, настроил доступ пользователей, создал и настроил узел с собственным пулом приложений, где выбрал ASP.Net 4.0:
При запуске проверочной страницы 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
выдала ошибку:
Таким образом, обнаружена явная пробема с настройками ASP.Net. При этому узел по умолчанию на этом же сервере успешно запускается. Т.к. в его пуле приложений указан ASP.Net 2.0
, то проблема в настройке именно версии 4.0.
Чтобы подтвердить свою догадку, запускаем Internet Information Services (IIS) Manager
, выбираем имя сервера и открываем фукнцию ISAPI and CGI Restriction
.
Поскольку в перечне разрешен запуск только 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
, видим, что расширение установлено, но не разрешено.
В правой части видим пункт Allow
, который поочердно вызываем для 32- и 64-разрядных версий.
Теперь, в браузере появилось правильное содержимое страницы Default.aspx
.
- Все используемые IP-адреса, имена серверов, компьютеров, доменов, пользователей, являются фиктивными и используются исключительно в демонстрационных целях.
- Информация приводится «AS IS».