2011-08-29 38 views
7

Chúng tôi có một ứng dụng ASP.NET 2.0 có sẵn để tải xuống dùng thử. Như vậy, chúng tôi không có quyền kiểm soát môi trường mà nó sẽ được cài đặt. Mặc dù tất cả những nỗ lực của chúng tôi để sản xuất một trình cài đặt đáng tin cậy, chúng tôi vẫn nhận được rất nhiều người dùng báo cáo sự cố.Điều kiện tiên quyết để cài đặt ứng dụng ASP.NET là gì?

Chúng tôi tạo tệp .net được biên dịch bằng cách sử dụng dự án triển khai web. Sau đó chúng tôi lấy đầu ra và chạy nó thông qua một dự án triển khai VS 2010 để tạo ra một trình cài đặt msi.

Đây chỉ là một vài trong những vấn đề chúng ta gặp phải:

  • Dường như trình cài đặt msi không làm việc tốt với IIS7. Trong thứ tự để cài đặt chính xác, khả năng tương thích IIS6 cần được cài đặt nếu không nó sẽ không thành công mà không có lỗi.
  • Mặc dù "RemovePreviousVersions" được đặt thành true, trình cài đặt hầu như không bao giờ gỡ cài đặt phiên bản đầy đủ và chỉ ném lỗi nói rằng ứng dụng đã được cài đặt.

Trước đây chúng tôi đã thử sử dụng trình cài đặt InnoSetup. Nó hoạt động ở một mức độ nhất định, nhưng chúng tôi đã gặp sự cố với ứng dụng đã cài đặt kết nối với nhóm ứng dụng sai và không bao giờ tìm thấy cách xác định nhóm ứng dụng thông qua tập lệnh InnoSetup.

Ai đó có thể cho tôi một danh sách dứt khoát về những gì bạn cần để có được một ứng dụng ASP.NET và chạy trên máy Windows XP trở lên có cấu hình không xác định? ví dụ. kiểm tra .NET 2.0 được cài đặt, kiểm tra II6 được cài đặt, sao chép tệp vào x, tạo thư mục ảo, v.v.

Thậm chí tốt hơn, không ai biết trình cài đặt (hoặc phần mở rộng InnoSetup) có cài đặt cho bạn không?

+2

Chúc may mắn. Chúng tôi đã cố gắng xây dựng trình cài đặt để cài đặt IIS, ứng dụng web và SQL Server Express. Chúng tôi đã bao gồm một số trình cài đặt trong một trình cài đặt lớn. Sau đó, chúng tôi phải tạo nhiều trình cài đặt cho các phiên bản 32 bit và 64 bit; sau đó cho XP và Windows 7, v.v. Nó không bao giờ làm việc trong môi trường đủ. :(Cuối cùng, chúng tôi đã từ bỏ và tạo một hình ảnh hệ thống cho một cấu hình phần cứng mà chúng tôi đã bán cùng với sản phẩm (với giấy phép hệ điều hành và mọi thứ), sản phẩm đã được bán đủ để nó vẫn còn giá trị. –

+1

re: RemovePreviousVersions ... The Thuộc tính 'RemovePreviousVersions' đã thay đổi từ năm 2008 trở đi. Nó không còn loại bỏ phiên bản trước đó (như tên ngụ ý!) nó có sự khác biệt về lắp ráp và chỉ thay thế các tệp khác nhau. số không thay thế nó Kiểm tra liên kết này http://stackoverflow.com/questions/4210294/visual-studio-2010-removepreviousversions bạn cần chạy một tập lệnh ngắn trên MSI để sửa lỗi đó. – wal

Trả lời

0

Sau khi xem xét tất cả các tùy chọn tôi quyết định giữ bộ cài đặt msi, nhưng thêm các kiểm tra điều kiện tiên quyết trong kịch bản thiết lập inno.

Dưới đây là kịch bản

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 [email protected] 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

Bạn có thể sử dụng Installshield để phát triển trình cài đặt cho các yêu cầu của mình. Nó có tất cả các fetures hỗ trợ việc tạo và xóa các thư mục ảo tùy thuộc vào IIS, sao chép dữ liệu trên hệ thống đích, Xác thực hệ điều hành, vv.

0

Nếu bạn sử dụng các tập tin bên ngoài. Ví dụ: Nếu một ứng dụng sử dụng các báo cáo Crystal (CR) thì gói thời gian chạy CR phải được cài đặt trên máy sản xuất. Ngoài ra hãy chắc chắn rằng tất cả các tệp của bạn được nhập vào dự án của bạn và ứng dụng của bạn không tìm kiếm tệp của nó trong máy cục bộ của bạn (ngoài thư mục dự án của bạn).

2

Để triển khai bản phát hành trên máy chủ phát triển hoặc sản xuất, vui lòng thực hiện theo các bước sau.

  1. Cài đặt triển khai web MSI.
  2. Nhấp chuột phải vào dự án của bạn trong trình khám phá giải pháp và thêm dự án triển khai web (Ở đây tôi không sử dụng chuyển đổi sang ứng dụng web hoặc xuất bản)
  3. Sau đó biên dịch tệp. Điều này sẽ tạo một thư mục trong thư mục dự án của bạn, nó sẽ chứa các tệp cần thiết được triển khai trên máy chủ.
  4. Sao lưu thư mục ảo của bạn và xóa thư mục ảo cũng như tệp khỏi inetpub.
  5. Goto Inet mgr, nhập inetmgr vào lần chạy nhấn enter.
  6. Theo trang web mặc định, tạo thư mục ảo, giữ các tệp được triển khai trong inetpub và duyệt các tệp.
  7. Cho phép truy cập thích hợp như đọc, chạy tập lệnh và duyệt. Đó là tất cả

Cờ nó như là câu trả lời của bạn nếu bạn có tìm thấy nó hữu ích khác cho tôi biết ...

0

Window PI làm việc với Windows XP SP3 + (và cao hơn) và đặt trên prerequistes cho một máy chủ web dev.

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

Giơ tay lên mặc dù - Tôi đã không thử nó bản thân mình nhưng tôi muốn cung cấp cho nó một đi cho một máy chủ dev. Có thể quan tâm đến bạn

Các vấn đề liên quan