Sự khác biệt giữa ứng dụng và thư mục ảo


11

Tôi là nhà phát triển asp.net, tôi luôn bị nhầm lẫn giữa ứng dụng và thư mục ảo trong IIS. Có vẻ như trong iis 6.0, bạn chỉ có thể tạo thư mục ảo.


1
Trong IIS6, bạn tạo một thư mục ảo và sau đó chuyển đổi nó thành một ứng dụng.
Mark Henderson

Câu trả lời:


13

Hai cái đó rất dễ bị nhầm lẫn và mọi người thường sử dụng các thuật ngữ thay thế cho nhau.

Một thư mục ảo chỉ là một con trỏ đến một vị trí khác trên đĩa. Nó trỏ đến một đường dẫn cố định trên đĩa khác với thư mục mẹ của nó.

Một ứng dụng là một ranh giới giữa các thư mục khác nhau. ASP.NET sử dụng nó để tạo root AppDomain mới (hoặc root ứng dụng). Một gốc ứng dụng sử dụng thư mục bin.asax, bin khác và app_ [thư mục khác].

Trong IIS6 và IIS7 nếu bạn tạo một thư mục ảo, nó cũng không phải là một ứng dụng theo mặc định. ASP.NET sẽ đặt nó trong cùng AppDomain với thư mục mẹ của nó.

Trong IIS6, bạn có thể chuyển đổi thư mục ảo hoặc thư mục thông thường thành ứng dụng bằng cách nhấp chuột phải -> thuộc tính và Tạo.

Trong IIS7, các tùy chọn được đặt tên khác nhau nhưng nó giống nhau trong nền. Tạo một thư mục ảo cho phép bạn tạo một vdir vẫn là một phần của AppDomain của cha mẹ, tức là không phải là một ứng dụng).

Tùy chọn "Thêm ứng dụng" thực sự tạo một thư mục ảo VÀ sau đó đánh dấu nó là một ứng dụng. (bạn sẽ nhận thấy rằng nó cho phép bạn chỉ định một đường dẫn).

Bạn cũng có thể nhấp chuột phải vào thư mục hiện có (hoặc vdir) và Chuyển đổi sang Ứng dụng. Đó là một cách để tạo ranh giới ứng dụng trên một thư mục thông thường hoặc ảo hiện có.


Trang web mặc định trên IIS 7 của tôi đang chạy MOSS 2007 (SharePoint). Vì tôi muốn người dùng cảm thấy như họ vẫn ở trên cổng, tôi đã tạo một ứng dụng web ASP.NET có thương hiệu tương tự và thiết lập nó như một ứng dụng dựa trên thư mục ảo trong cùng một trang. Cả Trang web mặc định và ứng dụng ASP.NET này đều đang sử dụng cùng một nhóm ứng dụng. Trước hết, đây có phải là thực hành an toàn / tốt? Thứ hai, nếu tôi kích hoạt và sử dụng phiên trong ứng dụng ASP.NET, liệu bằng cách nào đó có gây nguy hiểm cho tính toàn vẹn / hiệu suất của phiên được quản lý SharePoint, có ảnh hưởng đến SharePoint theo bất kỳ cách nào khác không?
Người dùng web

@WebUser Bạn có thể sử dụng chúng trong cùng một nhóm ứng dụng và vì chúng là các ứng dụng riêng biệt trong nhóm ứng dụng, trạng thái phiên sẽ tách biệt và tách biệt với nhau. Tuy nhiên, tôi khuyên bạn nên sử dụng một nhóm ứng dụng riêng biệt. Nếu một cái gì đó không thành công trong một, bạn không phải mất cả hai để tái chế hoặc sửa cái khác. Và bạn sẽ linh hoạt hơn để khóa các quyền NTFS để tách chúng khỏi nhau.
Scott Forsyth - MVP

@ ScottForsyth-MVP Tôi đã chú ý đến đề xuất của bạn vì tôi muốn họ hoàn toàn bị cô lập. Tôi tạo ra một hồ bơi ứng dụng mới và một tài khoản dịch vụ mới, và sử dụng này bài viết để thiết lập bản sắc. Tôi không biết tại sao nhưng ứng dụng sẽ ném System.UnauthorizedAccessExceptionsau khi mất một lúc để hiển thị trang; ứng dụng vẫn hoạt động nhưng hoạt động chậm và mang lại ngoại lệ khiến tôi phải mở Visual Studio. Bất kỳ suy nghĩ về những gì tôi đang thiếu?
Người dùng web

@ ScottForsyth-MVP bạn có thể vui lòng xem câu hỏi này tôi đã đăng trên ServerFault không? Cảm ơn!
Người dùng web

@WebUser. Có lẽ danh tính tùy chỉnh của bạn cần được thêm vào nhóm IIS_WPG. Đó là một yêu cầu trong IIS6. Tôi đã trả lời bài viết khác của bạn quá.
Scott Forsyth - MVP

2

Bạn cũng có thể kiểm tra .. Bạn có biết: Sự khác biệt giữa Ứng dụng và Thư mục ảo trong IIS 7 / 7.5

Đã chỉnh sửa: Để trích dẫn trang web, vì liên kết đã chết;

Trong IIS 7 / 7.5, bạn có một tùy chọn để tạo Thư mục ảo và Ứng dụng.

Thư mục ảo là gì?

Thư mục ảo là một thư mục được ánh xạ tới một thư mục vật lý cục bộ hoặc một thư mục trên một máy chủ từ xa. Một thư mục ảo sẽ có mã được thực thi trong cùng tiến trình worker như tiến trình cha. Nhóm ứng dụng của Trang web và Thư mục ảo là như nhau.

Hình ảnh05

Ứng dụng là gì?

Ứng dụng giống hệt với Thư mục ảo ngoại trừ việc bạn có tùy chọn chạy Ứng dụng trong nhóm ứng dụng khác.

Hình ảnh06

LƯU Ý: đây là cách các ảnh chụp màn hình ở trên trông giống như trong applicationationhost.config


0

Một thư mục ảo không là gì cả, chỉ là trỏ hoặc tham chiếu đến thư mục của bạn trong máy cục bộ hoặc máy chủ từ xa. Nếu bạn đang tạo thư mục ảo trong Trang web mặc định trong IIS. Giả sử nếu trang web mặc định bị sập do một số vấn đề nội bộ, bạn không thể truy cập thư mục ảo của mình.

Thêm ứng dụng là không có gì, nhưng là một nhóm các tệp cung cấp nội dung hoặc cung cấp dịch vụ qua các giao thức. Một ứng dụng thuộc về một nhóm ứng dụng; giả sử do một số trang web mặc định gặp sự cố, nó sẽ không ảnh hưởng đến bất kỳ ứng dụng nào thuộc nhóm ứng dụng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.