Vous êtes sur la page 1sur 11

Sign up for our free weekly Web Developer 9,623,746 Newsletter.

members (34,106 online)

Sign in

home

articles

quick answers

discussions

features

community

help
Next

Searchforarticles,questions,tips

Articles Web Development ASP.NET General

Article Browse Code Stats Revisions (4) Alternatives Comments & Discussions (68)

Deploying ASP.NET Websites on IIS 7.0


By Abhijit Jana , 4 Sep 2008
4.73 (99 votes)

About Article
This article describes some features and architecture of IIS 7.0 and deployment of ASP.NET sites on IIS Type Licence First Posted Views Bookmarked Article CPOL 19 Aug 2008 367,623 204 times

Introduction
1. 2. 3. 4. 5. 6. 7. Introduction to IIS 7.0 Features of IIS 7.0 Basic Architecture of IIS 7.0 How to Deploy ASP.NET Websites on IIS 7.0 How to Create Application Pool Assign Application Pool To Your Application Configure Web Garden on IIS 7.0 What is Application Pool? Types of Application Pool Identity Of Application Pool How To Create An Application Pool and Assign To a Web Application What is Web Garden? How To Create Web Garden? Is it Recommended to use Web Garden ? 8. 9. 10. 11. IIS 6.0 Vs IIS 7.0 Where Do I Get IIS 7.0 References History

IIS7 ASP ASP.NET IIS Ajax

Introduction to IIS 7.0


Microsoft Internet Information Services (IIS) 7.0 in Windows Server 2008 and Windows Vista provides a secure, manageable platform for developing and administrating and hosting Web applications and services. It has been completely redesigned and Restructured .IIS 7.0 provides features and functionality for administrators to effectively manage Web infrastructures; developers to rapidly build Web applications and services; and hosters to Web hosting.

Top News
Introducing the $99 Linux Supercomputer

Features of IIS 7.0

Get the Insider News free each morning.

Following are some features of IIS 7.0: IIS 7.0 provides features and functionality that enable administrators to reliably and effectively manage Web infrastructures. IIS 7.0 has a distributed file-based configuration system that enables IIS settings to be stored in web.config files along with the ASP.NET settings. IIS 7.0 provides a cost-effective, more scalable Web server platform for delivering reliable Web hosting to a broad set of customers. Major innovations in IIS 7.0: A modular, extensible core Web server A unified, distributed file-based configuration system Integrated health monitoring and diagnostics A set of new administration tools with delegation support For more features and product understanding, check here.

Related Articles
Creating animations with Dundas Chart for ASP.NET Smarter Data Labels with Dundas Chart SmartLabels Understanding Chart Areas with Dundas Chart for .NET Add "Select All" to parameter lists in SQL Reporting Using screensavers inside the Windows Media Player Making Sense of Geographic Data with Dundas Map and AJAX Handling connection notification between a desktop machine and Windows CE based devices Create data-driven applications with the Hera Application Framework Towards the self-documenting database: extended properties Accessibility audit vs. accessibility testing Digital Signatures and PDF Documents Color Scale Filter WMP Power Hour APP Merge Landscape and Portrait PDFs using ASP.NET How to conduct an SMS survey using a cell phone connected SMS gateway and MS Access Using Barcodes in Documents Best Practices How to Retrieve EMC Centera Cluster/Pool Capabilities "Hey! Is That My Car? How to Sharpen a QuickBird Satellite Image Using DotImage" Integrate your SharePoint environment into the open standards-based WebSphere Portal platform using the Visual Studio IDE VBScript / Excel 2007 - An easy way to access DBF files Retrieving and Storing Call History

Basic Architecture of IIS 7.0


The following diagram shows the Overall Architecture of IIS 7.0 which contains HTTP.Sys , SvcHost.exe, Application Pool and Worker Process(W3Wp).

The main components of IIS 7.0 are HTTP.Sys, Svchost.Exe , Application Pool , Worker Process (W3WP.exe) and Configuration Store .

H T T P . S y s : It the Kernel mode Protocol stack which listens to the HTTP and HTTPS Request. W3SVC and
WAS are the parts of Svchost.exe. W3SVC is the Listener of Request from kernel mode that is passed by the H T T P . S y s . W3SVC also interacts with W i n d o w s A c t i v a t i o n P r o c e s swhich is managed by the worker process by starting, stopping and recycling the application pool. It was also responsible for Health Monitor of Application Pool during runtime. Configuration stores all web.config and ASP.NET Settings and other configuration in XML Hierarchy form. W3wp.exe is a long-running process that processes requests and generates responses. The following diagram shows you the process flow of IIS 7.0. This is the flow of User Request to IIS and gets the Response from IIS.

User Request Pass from Kernel Level to User Level Via H t t p . S y sand then passes to svchost, and then goes to Application Pool. For more details, please click here.

How to Deploy ASP. Net Websites on IIS 7.0


From now onwards, I will describe one example to deploy your ASP.NET websites on IIS 7.0. Step 1: From Visual Studio, publish your Web application. Step 2: Copy the published application folder to "C:\intepub\wwwroot" [default] folder. Step 3: From RUN - > inetmgr -> OK The following screen will come. This is the main page for any application. There are three panels.

"TestWeb" is a recently pasted webapplication on your wwwroot folder. Step 4: We need to convert it to an application, just right click and then Click on "ConvertToApplication" as shown in the following picture:

After converting it to application, its icon will be changed and then you can set the property for your web application from the middle pane. You can set IIS Authentication Mode, Default Page Just like IIS 6.0:

You can change Security Settings on Authentication Section. By default Setting will be set from your web.config itself. As in my web.config Form Authentication was set that's why, Forms Authentication has been Enabled. If we want to change the status, just double click and update status to Enabled to Disabled or Vice Versa.

Now one most important part is to set the Application Pool for your application.

How to Create Application Pool


A site can contain many applications including that sites default application, which is called the root application. In addition to belonging to a site, an application belongs to an application pool, which isolates the application from applications in other application pools on the server . Step 1: Right Click on Application Pool and give the name of your pool. Here, I have given "pool" and select Framework and click on OK:

Step 2: If you are writing some thing on the server [may be writes Error Events Logs], you need to change the Pool Identity to Local System. Right click on Pool Identity setting as shown in the following image: There are three identities of Application Pool: Network Service Local Service Local System

Assign Application Pool To Your Application


Now, we need to assign the Application Pool to our web application. Step 1: Right Click on "TestWeb" Application and Select "Advanced Settings":

Step 2: Finally assign your created Application Pool "p o o l " to "T e s t W e b " Application.

Now you can run your application by just typing http:\\localhost\testweb and it can be accessible on network by IP also.

Configure Web Gardens in IIS 7.0


I have split this section into some parts. These are: What is Application Pool? How To Create An Application Pool and Assign To a Web Application What is Web Garden? How To Create Web Garden? Is it Recommended to use Web Garden ?

What is Application Pool ?


Application pools are used to separate set of IIS worker processes that share the same configuration. Application pools enable us to isolate our web application for better security, reliability, and availability. The worker process serves as the process boundary that separates each application pool so that when one worker process or application is having an issue, other applications or worker processes are not affected.

Figure: Application Pool With Worker Process On IIS Server

In your IIS, there may be more on Web sites hosted and by creating Application Pool, you can just assign a Separate Worker Process to your application. I have already discussed how you can assign Application Pool to your web application.

Types of Application Pools


There are two predefined Application Pools is IIS 7.0: 1. D e f a u l t A p p P o o l (Integrated) 2. C l a s s i c A p p P o o l None of the Application Pools are Installed by default when IIS 7.0 is installed. Classic Application Pool is installed when ASP.NET 2.0 is installed in the System.

Identity Of Application Pool


Application pool identity configuration is an important aspect of security in IIS 7.0, because it determines the identity of the worker process when the process is accessing resource. This Settings comes form IIS 6.0. in IIS 5.0. There the Application pool runs under the local system account. In IIS 7.0, there are three predefined Identities that are the same as IIS 6.0 Applicationpool Identity Description

L o c a l S y s t e m is a built-in account that has L o c a l S y s t e m a d m i n i s t r a t i v e p r i v i l e g e son the server. It


can access both local and remote resources

L o c a l S e r v i c e s built-in account has privileges L o c a l S e r v i c e s


of an authenticated local user account. It does not have any network access permission. This is the default Identity of Application Pool. N e t w o r k S e r v i c e s has privileges of authenticated local user account and it can have access remote resource as machine account.

N e t w o r k S e r v i c e s

How to Create An Application Pool and Assign It to a Web Application?


This has already been discussed. Creating Application Pool and Assigning it to a Web Application

What is Web Garden?


By default each Application Pool runs with a Single Worker Process (W3Wp.exe). We can assign multiple Worker Processes With a Single Application Pool. An Application Poll with multiple Worker process is called "Web Gardens". Many worker processes with the same Application Pool can sometimes provide better throughput performance and application response time. And each worker process should have their own Thread and Own Memory space.

Fig: General Block Diagram of Web Garden.

As given in the picture, in IIS Server there may be multiple Applicationpool and each application pool has at least a single Worker Process. Web Garden should contain multiple Worker processes. There are certain restrictions to use Web Garden with your web application. If we use Session Mode to "in proc", our application will not work correctly because session will be handled by different Worker Process. To avoid this type of problem, we should have to use Session Mode "out proc" and we can use "Session State Server" or "SQL-Server Session State".

Main Advantage : The worker processes in a Web garden shares the requests that arrive for that particular application pool. If a worker process fails, another worker process can continue to process requests.

How to Create Web Garden?


Create a New Application Pool. Right Click -> Advance Setting -> Go To Process Model Section, set the Value for Maximum Worker Process.

Is It Recommended to use Web Garden?


It not always recommended to use Web Garden to your Application. It effects the performance of your sites except in very specific cases like some long running synchronous requests or application is very unstable.

IIS 6.0 Vs IIS 7.0


The main advantages of IIS 7.0 is Modular Design which gives some benefits to IIS 7.0 over IIS 6.0. The following table shows you some differences of IIS 6.0 and IIS 7.0. Features Architecture Setup Extended Features Customize UI There are many more differences. Monolithic Most Features Installed ISAPI Filter and ISAPI Extension Normal IIS 6.0 Modular Minimum installation based on role Added Module and handler in managed or native code Customize for .NET IIS 7.0

Where Do I Get IIS 7.0


IIS 7.0 will not be available with all Operating Systems. There are some specific OS and specific Versions for IIS 7.0. Operating System With Edition Windows Server 2008 Windows Vista (Home Basic) Windows Vista (Home Premium) Windows Vista (Business) Windows Vista (Ultimate) Available Yes No (Default) need to install No (Default) need to install Yes Yes

Reference

IIS Resource IIS Learn

History
08/20/2008: Article published 08/28/2008: Added Section: Web Garden on IIS 7.0 Modified some text

License
This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Abhijit Jana
Software Developer (Senior) India Member
Follow on Twitter

.NET Consultant | Former Microsoft MVP - ASP.NET | CodeProject MVP, Mentor, Insiders| Technology Evangelist | Author | Speaker | Geek | Blogger | Husband Blog : http://abhijitjana.net Web Site : http://dailydotnettips.com Twitter : @AbhijitJana My Kinect Book : Kinect for Windows SDK Programming Guide

Article Top

Like

11

Tweet

Sign Up to vote Poor

Excellent

Vote

Comments and Discussions


You must Sign In to use this message board. Search this forum Profile popups Spacing Relaxed Noise VeryHigh Layout OpenAll Per page 10 Go Update

First Prev Next

My vote of 5
Nice. would like to read about IIS 7.5...
Sign In View Thread Permalink

Maddy_1008

9 Jan '13 - 0:17

Caution/ Recommendation

Member 2127089

10 Dec '12 - 5:00

Great tutorial but you indicated that users should change to Local System to allow them to write to the folder - "you need to change the Pool Identity to Local System" Please use Local System with caution as it creates a security threat, opening your application to malicious users who can take over your machine. Instead modify security permissions for NETWORK SERVICE.

Sign In View Thread Permalink

My vote of 5
Thanks Sir...

ANJYR

29 Aug '12 - 6:25

I have one major doubt.. How to deploy website with database..means in which path i have to keep my database if that will be in SQL
Sign In View Thread Permalink

IIS7 configuration error

hariom_soni

18 Aug '12 - 5:11

Dear Sir, I tried to configure iis7 website but i got only error "Not found" Please suggest me to solve error
Sign In View Thread Permalink

Nice Article

Suvabrata Roy

19 Jul '12 - 22:55

Will you please elaborate something on AppDomain and Worker Process .... Thanks for The article
Sign In View Thread Permalink

Session Problem

Member 9273998

18 Jul '12 - 11:33

H e l l o I h a v e a p r o b l e m : w e b 1 a p p 1 w e b 2 a p p 2 , a U s e r A e n t e r s y o u r P C a n d s u p p o s e d l y c l o s e s t h e s e s s i o n o f t h e a p p l i c a t i o n , a U s e r B l o g i n o n t h e s a m e P C u s e r a n d U s e r B c a n s e e a n d i t i s m i x e d w i t h t h e i n f o r m a t i o n o f U s e r A . t h e i m p l e m e n t a t i o n o f W e b G a r d e n , I w o u l d s o l v e t h i s p r o b l e m ? o r h o w I c a n f i x ? N o t e : Y o u r t h e m e i s e x c e l l e n t

Sign In View Thread Permalink

Nice Artical Thanks...


Its really helps
Sign In View Thread Permalink

Suvabrata Roy

11 Jul '12 - 22:06

greta article
Do not criticise, if you don't have any better idea.
Sign In View Thread Permalink

Member 8687094

15 May '12 - 16:19

My Vote of 5
Good Do not criticise, if you don't have any better idea.

Shahin Khorshidnia

12 May '12 - 20:37

Sign In View Thread Permalink

My vote of 5
My 5! Nice

sravani.v

7 May '12 - 19:32

Sign In View Thread Permalink

Last Visit: 31 Dec '99 - 19:00 General News

Last Update: 31 Jan '13 - 3:11 Suggestion Question Bug

Refresh Answer Joke

1 2 3 4 5 6 7 Rant Admin

Next

Permalink | Advertise | Privacy | Mobile Web03 | 2.6.13022.3 | Last Updated 5 Sep 2008

Layout: fixed | fluid

Article Copyright 2008 by Abhijit Jana Everything else Copyright CodeProject, 1999-2013 Terms of Use

Vous aimerez peut-être aussi