구글와이드(336x280)_상단 2개


(영문) IIS Applications and Virtual Directories 홈피 제작 관련지식

Overview

I've noticed in helping developers on the various forums and newsgroups that there is a severe shortage of information about IIS Applications. For instance, just try to find even a definition, let alone more details, and yet understanding the basics of IIS Applications is crucial in ASP.NET. This article aims to provide the basics, applicable to both classic ASP and ASP.NET, and then the next article will add ASP.NET specific details.

IIS Web-Site Basics

A web-site in IIS is just a logical collection of files and directories, with a starting point, called the web-root, mapped to a physical location. Each web-site is accessed through a domain name, or intranet server name, that is then mapped to the web-root of the site, not the physical location. We refer to documents in the web-site using /Directory/File.ext notation, where the initial forward-slash (/) refers to the web-root defined in IIS.
IIS in Win 2K/XP Pro, typically used in development, supports one web-site, whereas Win 2K/2003 Server, used in production, supports multiple web-sites. Why does this matter? We are basically forced to use sub-directories in development, yet the ideal situation is that we will deploy to a web-root. I can't count how many web-sites I visit that automatically redirect me to a hard-coded sub-directory -- simply because that's the way it was developed!

Virtual Directories

A sub-directory of a web-site in IIS can be either a physical sub-directory, or it can be a Virtual Directory that is logically mapped to that location. It really should not matter whether the directory is a physical sub-directory or a Virtual Directory, just like the location of the web-root isn't exposed. In most production cases, especially with shared web-hosts, you will only be able to create physical sub-directories, probably using FTP or similar tools.
If you open up the Internet Services Manager in your Administrative Tools, also called IIS Manager, and drill down you will see the logical structures. Physical directories are shown with a folder icon, while Virtual Directories are shown with a special folder icon that has a globe as part of the icon. You may also see another icon, either a box around a globe icon (Win 2K/XP) or a gear icon (W2003), which indicates the directory is an IIS Application.

IIS Applications

An IIS Application is a directory, physical or virtual, that has been setup in a manner that makes it logically independent from the rest of the web-site. Its purpose is basically to make sub-directories act just like real web-sites, which is very useful on Win 2K/XP Pro, but not really necessary on a Server. Its important to understand that you cannot create an IIS Application simply using FTP or similar tools -- and this is the cause of many ASP.NET problems.
So how do you create an IIS Application? First, VS.NET automatically makes all new web projects into IIS Applications, whether you want it to be or not. Otherwise, you need to use IIS Manager to create or setup an IIS Application, or get your web-host to do it for you (WebHost4Life.com has a tool for this). The easiest technique is to use IIS Manager to create a new Virtual Directory -- it will also be an IIS Application by default, which adds to the confusion.

Application Settings

The alternative is much more revealing, so you really need to try it yourself. Using the IIS Manager, select any directory and then go to its property pages, then go to the Directory tab (may be labeled Virtual Directory or Home Directory). The bottom half of this form will be labeled Application Settings and you will see either a Create or a Remove button -- if you see the Create button then it is not an IIS Application, if the Remove button then it is an IIS Application.
Notice that some of the other items are only available for IIS Applications: Application Name, Configuration, Application Protection, and possibly Unload. The Configuration button brings up a dialog to map file extensions to ASP.NET, or other processes, as well as options like session state enable and timeout. The Application Protection drop-down determines if this IIS Application is to be isolated in its own process, pooled with other apps, or in-process with IIS.

Application Details

An IIS Application is basically a logical web-site, isolated from all others, and this is true for both classic ASP and ASP.NET; there's just more to ASP.NET. This means that Application and Session variables are not shared with other IIS applications, and Server.Execute/Transfer also has some chances for failure, or at least some odd behavior, when the new url is in a different IIS Application. See the next article for the additional ASP.NET specific application details.
IIS Applications also have events that can be defined in a global.asa/asax file. Global.asa/asax events only get executed for IIS Applications, and only if the file is at the app-root -- note that "asa" stands for Active Server Application. IIS Applications start when the first page in them is requested, and continue to run until they are stopped, either manually with the Unload button, or due to timeouts or other constraints automatically applied in ASP.NET configuration.

Conclusion

Hopefully I have succeeded in filling in some basic missing information about IIS Applications, which will continue in my next article on ASP.NET specifics. Some of the topics specific to ASP.NET include Cache, statics, bin folder, and authentication, and I will also show you how to correctly code your applications so that they will work the same at the web-root as they do in IIS Applications. My pet peeve: please do not confuse IIS Applications with Virtual Directories.

null



바보들의 영문법 카페(클릭!!)

오늘의 메모....

시사평론-정론직필 다음 카페
http://cafe.daum.net/sisa-1

바보들의 영문법 다음 카페
http://cafe.daum.net/babo-edu/

티스토리 내 블로그
http://earthly.tistory.com/

내 블로그에 있는 모든 글들과 자료에 대한 펌과 링크는 무제한 허용됩니다.
(단, 내 블로그에 덧글쓰기가 차단된 자들에게는 펌, 트랙백, 핑백 등이 일체 허용되지 않음.)

그리고 내 블로그 최근글 목록을 제목별로 보시려면....
바로 아래에 있는 이전글 목록의 최근달을 클릭하시면 됩니다.
그러면 제목을 보고 편하게 글을 골라 보실 수 있습니다.

그리고 내 블로그내 글을 검색하시려면 아래 검색버튼을 이용하시면 됩니다.


가가챗창

flag_Visitors

free counters