Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6858165
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T02:07:25+00:00 2026-05-27T02:07:25+00:00

We have an ASP.NET 2.0 application that is available as a trial download. As

  • 0

We have an ASP.NET 2.0 application that is available as a trial download. As such, we have no control over the environment into which it will be installed. Despite all our efforts to produce a reliable installer, we still get a lot of users reporting problems.

We generate compiled .net files using a web deploy project. We then take the output and run it through a VS 2010 Deployment Project to generate an msi installer.

Here are just a couple of the issues we encounter:

  • It appears that the msi installer does not work well with IIS7. In
    order for it to install correctly, IIS6 compatibility needs to
    be installed otherwise it just fails with no error.
  • Even though “RemovePreviousVersions” is set to true, the installer almost never uninstalls the provious version and just throws an error saying that the application is already installed.

We have previously tried using an InnoSetup installer. It worked to a certain extent, but we had problems with the installed application connecting to the wrong app pool and never found a way to define the app pool via the InnoSetup script.

Can somebody give me a definitive list of what you need to get an ASP.NET application up and running on a Windows XP or later machine that has an unknown configuration? e.g. check .NET 2.0 is installed, check II6 is installed, copy files to x, create virtual directory etc.

Even better, does anybody know of an installer (or InnoSetup extension) that does most of the setup for you?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T02:07:25+00:00Added an answer on May 27, 2026 at 2:07 am

    After reviewing all the options I decided to keep the msi installer, but add the prerequisite checks in the inno setup script.

    Here’s the script

    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
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have an ASP.Net application that references a DLL which contains a singleton. The
I have an ASP.NET application that is hosted in timezone A and is being
I have an ASP.NET application that uses a custom .NET library (a .DLL file).
I have an ASP.NET application that calls other web services through SSL (outside the
I have an ASP.Net Application that sends text messages to mobile phones. It does
I have a small conundrum where I have an asp.net application that's using forms
I have a database on SQL Server 2008. I have an ASP.NET application that
I have a asp.net web application that uses C#. It logs in on a
I have an ASP.NET MVC3 application that I have built and it has two
I have a ASP.NET Webforms application that is being used with Motorola Tablets (Android

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.