Каковы предварительные условия для установки приложения ASP.NET? - PullRequest
7 голосов
/ 29 августа 2011

У нас есть приложение ASP.NET 2.0, которое доступно для ознакомительной загрузки. Таким образом, мы не контролируем среду, в которую он будет установлен. Несмотря на все наши усилия по созданию надежного установщика, мы все равно получаем множество пользователей, сообщающих о проблемах.

Мы генерируем скомпилированные файлы .net с помощью проекта веб-развертывания. Затем мы берем выходные данные и запускаем их через проект развертывания VS 2010, чтобы сгенерировать установщик MSI.

Вот только пара проблем, с которыми мы сталкиваемся:

  • Похоже, что установщик MSI не работает с IIS7. В Для правильной установки совместимости IIS6 необходимо: быть установленным, иначе это просто терпит неудачу без ошибки.
  • Даже если для параметра «RemovePreviousVersions» задано значение true, программа установки почти никогда не удаляет устаревшую версию и просто выдает ошибку, сообщающую, что приложение уже установлено.

Ранее мы пытались использовать установщик InnoSetup. В определенной степени это работало, но у нас были проблемы с подключением установленного приложения к неправильному пулу приложений, и мы так и не нашли способ определить пул приложений с помощью сценария InnoSetup.

Может ли кто-нибудь дать мне полный список того, что вам нужно для запуска и запуска приложения ASP.NET на Windows XP или более поздней машине с неизвестной конфигурацией? например проверьте, установлен ли .NET 2.0, проверьте, установлен ли II6, скопируйте файлы в x, создайте виртуальный каталог и т. д.

Еще лучше, кто-нибудь знает об установщике (или расширении InnoSetup), который выполняет большую часть настройки за вас?

Ответы [ 5 ]

2 голосов
/ 08 ноября 2011

Чтобы развернуть выпуск на сервере разработки или производственного сервера, выполните следующие действия.

  1. Установить MS Deployment MSI.
  2. Щелкните правой кнопкой мыши свой проект в обозревателе решений и добавьте проект веб-развертывания (здесь я не использую преобразование в веб-приложение или публикацию)
  3. Затем скомпилируйте файлы. Это создаст папку в каталоге вашего проекта, которая будет содержать файлы, необходимые для развертывания на сервере.
  4. Возьмите резервную копию вашего виртуального каталога и удалите виртуальный каталог, а также файлы из inetpub.
  5. Goto Inet mgr, введите inetmgr при запуске, нажмите enter.
  6. На веб-сайте по умолчанию создайте виртуальный каталог, сохраните развернутые файлы в inetpub и просмотрите файлы в браузере.
  7. Разрешить соответствующий доступ, такой как чтение, запуск сценария и просмотр. Это все

Отметьте его как свой ответ, если он вам пригодится, иначе дайте мне знать ...

0 голосов
/ 26 ноября 2011

Окно PI работает с Windows XP SP3 + (и более поздней версии) и включает предварительные условия для сервера веб-разработки.

http://www.microsoft.com/web/downloads/platform.aspx

Руки вверх, хотя - я сам не пробовал, но я бы попробовал сервер разработки. Может вас заинтересовать

0 голосов
/ 26 ноября 2011

После просмотра всех опций я решил оставить установщик msi, но добавить обязательные проверки в сценарий установки inno.

Вот сценарий

procedure DialogInfo(const Msg: String);
begin
  MsgBox(Msg , mbInformation, mb_OK); 
end;

function IISInstalled: Boolean;
begin
  Result := RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\InetStp');
end;

function GetIISMajorVersion: Integer;
var 
  Vers: Cardinal;
begin
  if (IISInstalled) and
     (RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\InetStp', 'MajorVersion', Vers)) then
    Result := Vers
  else
    Result :=0;    
end;

function IISManagementConsoleInstalled: Boolean;
var
  IIS: Variant;
begin
  try
    IIS := CreateOleObject('IISNamespace');

    Result := TRUE;
  except
    Result := FALSE;
  end;
end;

function WindowsMinorVersion: Integer;
var
  Version: TWindowsVersion;
begin
  GetWindowsVersionEx(Version);

  Result := Version.Minor;
end;

function WindowsMajorVersion: Integer;
var
  Version: TWindowsVersion;
begin
  GetWindowsVersionEx(Version);

  Result := Version.Major;
end;

function WindowsServer: Boolean;
var
  Version: TWindowsVersion;
begin
  GetWindowsVersionEx(Version);

  Result := Version.ProductType = VER_NT_SERVER;
end;

function IsWindows7: Boolean;
begin 
  Result := (WindowsMajorVersion = 6) and (WindowsMinorVersion = 1) and (not WindowsServer);
end;

function IsWindowsVista: Boolean;
begin 
  Result := (WindowsMajorVersion = 6) and (WindowsMinorVersion = 0) and (not WindowsServer);
end;

function IsWindowsXP: Boolean;
begin 
  Result := (WindowsMajorVersion = 5) and (WindowsMinorVersion = 1) and (not WindowsServer);
end;

function IsWinServer2003: Boolean;
begin 
  Result := (WindowsMajorVersion = 5) and (WindowsMinorVersion = 2) and (WindowsServer);
end;

function IsWinServer2008: Boolean;
begin 
  Result := (WindowsMajorVersion = 6) and ((WindowsMinorVersion = 0) or (WindowsMinorVersion = 1)) and (WindowsServer);
end;

function IsHomeEdition: Boolean;
var
  Version: TWindowsVersion;
begin
  GetWindowsVersionEx(Version);

  Result := Version.SuiteMask AND VER_SUITE_PERSONAL <> 0 ;
end;

function CheckIISPrerequisites: Boolean;
var
  IISVersion: Integer;
  Msg: String;
begin
  Result := FALSE;

  case GetIISMajorVersion of
    0:
      begin
        if IsHomeEdition then
          Msg := 'The Easy-IP Web Server requires Internet Information Services (IIS). IIS cannot be installed on the Home edition of Windows.'
        else
        begin      
          Msg := 'The Easy-IP Web Server requires Internet Information Services to be enabled on this machine. To enable IIS: ' +#10 + #10;

          if IsWindowsXP then
            Msg := Msg + '1) Open Control Panel then Add or Remove Programs.' + #10 +
                         '2) Click on Add/Remove Windows Components.' + #10 +
                         '3) Find Internet Information Services (IIS) amd check it.' + #10 +
                         '4) Click Next then Finish.' else

          if IsWinServer2003 then
            Msg := Msg + '1) Open Manage Your Server' + #10 +
                         '2) Click on Add or Remove a Role.' + #10 +
                         '3) Click Next.' + #10 +
                         '4) Select Application server (IIS, ASP.NET)' + #10 +
                         '5) Click Next.' + #10 +
                         '6) Check Enable ASP.NET.' + #10 +
                         '7) Click Next, then Next again.' else

          if IsWinServer2008 then
            Msg := Msg + '1) Open Server Manager.' + #10 +
                         '2) Click on Roles.' + #10 +
                         '3) Click Add Roles.' + #10 +
                         '4) When the Wizard appears, click Next.' + #10 +
                         '5) Find Web Server(IIS) and check it.' + #10 +
                         '6) Click Next twice.' + #10 +
                         '7) Find Application Development and check it.' + #10 +
                         '8) Find IIS 6 Management Compatibility (under Management Tools) and check it along with all it''s children.' + #10 +
                         '9) Click Next, then Install.' 
          else         

            // Vista, Win7 or later
            Msg := Msg + '1) Open Control Panel then Programs and Features.' + #10 +
                         '2) Click on Turn Windows Features on or off.' + #10 +
                         '3) Check Internet Information Services.' + #10 +
                         '4) Under the Internet Information Services node, expand Web Management Tools and check IIS Management Console.' + #10 +
                         '5) Click OK.';
        end; 
      end;

    5, 6: 
      begin
        Result := IISManagementConsoleInstalled;

        if not Result then
          Msg := 'Unable to install the Easy-IP Web Server as the IIS Management Console could not be initiated. Please contact support@easy-ip.net for more information.';
      end;

    7: 
      begin
        Result := IISManagementConsoleInstalled;

        if not Result then
        begin
          Msg := 'Internet Information Services is installed, but in order to install the Easy-IP Web Server, you must also enable the IIS Management Console. To enable the IIS Management Console:' + #10 + #10;

          if WindowsServer then
            Msg := Msg + '1) Open Server Manager and click on Roles.' + #10 +
                         '2) Under Web Server (IIS), click Add Role Services.' + #10 +
                         '3) Find Application Development and make sure it''s checked.' + #10 +
                         '4) Find IIS 6 Management Compatibility (under Management Tools) and check it along with all it''s children.' + #10 +
                         '5) Click Next, then Install.' 
          else
            Msg := Msg + '1) Open Control Panel then Programs and Features.' + #10 +
                         '2) Click on Turn Windows Features on or off.' + #10 +
                         '3) Under the Internet Information Services node, expand Web Management Tools then check IIS Management Console.' + #10 +
                         '4) Click OK.'; 
        end;
      end;  
  end; // of case

  if not Result then
    DialogInfo(Msg);
end;
0 голосов
/ 24 октября 2011

Если вы используете внешние .dll (сборки), то вы должны также развернуть их. Например: если приложение использует отчеты Crystal Reports (CR), на рабочем компьютере должен быть установлен пакет времени выполнения CR. Также убедитесь, что все ваши файлы были импортированы в ваш проект, и ваше приложение не ищет свои файлы на вашем локальном компьютере (вне каталога вашего проекта).

0 голосов
/ 15 сентября 2011

Вы можете использовать Installshield для разработки установщика для ваших требований. Он имеет все функции, которые поддерживают создание и удаление виртуальных каталогов в зависимости от IIS, копирование данных в целевой системе, проверку ОС и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...