Sunday, August 21, 2016

asp.net deployment procedure with screen shots

Deploying ASP.NET Applications
After creating and testing your ASP.NET application, the next step is to deploy the application. Deployment is the process of distributing the finished application to beinstalled on other computer. We can use the built-in deployment feature that comes with Visual studio .NET to create a Windows Installer file - a .msi file for the purpose of deploying applications.
Deploying Applications
To start, open the Web Application project you want to deploy. Say, you have a project named "Deploy" with ten Web pages in it. Select File->Add Project->New Project from the main menu. From the Project Types pane select Setup and Deployment Projects and from the Templates pane select Web Setup Project. Type WebSetup1 for name and specify a location in the location box and click OK. The New project dialogue box looks like the image below.

When you click OK on the above dialogue box, the project is added to the solution explorer window and also a File System Editor window appears as shown in the imagebelow.

The File System Editor window has two panes. Select Web Application Folder in the left pane in this window. From the Action menu (on main menu), select Project Output to open the Add Project Output Group dialog box. It looks like the image below.

Make sure that Deploy is selected in the Project drop-down list and select Primary Output from the list and click OK. You also can select other options depending upon the users of your application.
Now, in the File System Editor window, select Web Application Folder and open it's Properties window. The Properties window for the Web Application Folder looks like the image below.

In this window, set the VirtualDirectory property to any name, say FinishedApp. FinshedApp will be the folder on the target machine where you will install this application. The name you set for this VirtualDirectory property should not already exist on the target machine. If it does, the contents in the folder will be overwritten. Also, set theDefaultDocument property to any page in the application. The page you set in this property will be the default page for the Web Application. Once you are finished with the Properties window build the solution by selecting Build->Build WebSetup1 from the main menu. After the solution is built sucessfully, a WebSetup1.msi file is created in the Debug directory of the Web Setup project. The default path to the debug directory is as follows:
C:\Documents and Settings\Administrator\My Documents\Visual Studio Projects\deploy\WebSetup1\Debug.
Installing the Application
You can copy the WebSetup1.msi file to the target machine and double-click to install the Web Application. When you double-click the setup file the dialog that opens looks like the image below.

Click next and you will be taken to the next dialog which looks like the image below.

You can use the default Virtual Directory specified by the installer or you can specify one. Click next to install the application.

Deploying ASP.NET Applications
Using the Copy Project Option
Another option to deploy your ASP.NET application developed using Visual Studio .NET is to use the copy project option. This option is very helpful if you decide to host your ASP.NET application with a hosting provider. The hosting provider allocates some space for you on his Web server and you are required to deploy your application/Website. To host your ASP.NET application on a hosting provider's server you need to follow these steps.
The first thing you need to do before deploying any ASP.NET Web application is to change the Active Solution Configuration from Debug to Release as shown below. This allows the compiler to optimize the code, remove debugging related symbols from code and makes the code run much faster. To open the Configuration Manager, right-click on the Web project in the Solution Explorer window and select Project->Properties. The properties dialog box looks like the image below.


On this dialog, click on Configuration Properties towards the left and click the "Configuration Manager" button towards the right side. The Configuration Manager dialog looks like the image below.


On this diaolg select Release from the drop-down list found at top-left.
To copy your Web project onto the target server, select Project->Copy Project from the main menu. Selecting this option will display a dialog box as shown in the imagebelow.


The Copy Project dialog provides the following options.
Destination Project Folder
Used to specify the location to which you want to copy the project. The location can be on the same machine or on a remote server.
Web access method
The Web access method option determines the access method that is used to copy the Web project to the destination folder. There two types of Web access methods:
File share: Allows to directly access the project files on the Web server through a file share.
FrontPage: Specifies that you want to use the HTTP-based FrontPage Server Extensions to transfer your project files to the server.
Copy
The Copy option provides three types which are as follows:

Only files needed to run this application: Copies built output files (DLLs and references from the bin folder) and any content files (.aspx, .asmx). It is recommended to deploy the application using this default option.
All project files: Copies built outputs (DLLs and references from the bin folder) and all files that are in the project. This includes the project file and source files.
All Files in the source project folder: Copies all project files and any other files that are in the project folder (or subfolder) being transferred to the destination folder.
To copy the Web Application, select your options based on the application type from the above dialog box and click OK. This will result in the ASP.NET Web application being deployed on the target server as shown in the image below.



Some hosting providers require you to enable FrontPage Extensions on your account which can be done via the control panel.


Configuring Websites in Windows .NET Server/IIS 6.0
At times there might be situations where you need to host your ASP.NET applications from your corporate server or your own machine. A scenario where this might be needed is when you have large amounts of data on your Web site and you are concerned about the big bucks your hosting provider will charge you for disk space, bandwidth and database maintenance. Internet Information Services 6 (IIS 6) can be used for hosting your Web site. IIS 6 is a powerful platform for hosting Web sites. Creating and configuring Web sites and Virtual Directories using IIS are as easy as 1-2-3. In this section we will see how we can create a Website using IIS 6.0 and configure it.
Creating a Website
The first thing you need before creating a Web site using IIS 6.0 is a unique IP address that identifies your computer on the network. This address takes the form of a string of four numbers separated by periods (.). For your site to be up and running you also need a connection to the Internet. You need to lease a line from an Internet Service Provider (ISP) or a telephone company. When you open IIS Manager in Administrative Tools and select Web sites in the console tree, and right-click on default Web site and open it's properties you will find that the IP address for the default Web site is All Unassigned. This means any IP address not specifically assigned to another Web site on the machine opens the Default Web site instead. A typical use for the Default Web site is to display general information like a corporate logo and contact information.
Let's assume that we will use the IP address 169.16.13.211 for creating Startvbdotnet.com and C:\Startvbdotnet is the folder where the homepage for this site is located. To create the Startvbdotnet Web site, right-click on the Web Sites node and select New->Web Site to start the Web Site Creation Wizard as shown in the images below.





Click Next on the Web site creation wizard dialog and type a description for the site as shown in the image below.


After typing the description click next to open the dialog where you need to specify the IP address and port  number for your Web site. As mentioned above, type 169.16.13.211 in the IP address textbox and 80 in the TCP port textbox. The dialog looks like the image below.


Click Next and specify C:\Startvbdotnet as the home directory for the site. Notice the checkbox that says "Allow anonymous access to this Web site". By default, it ischecked, which means the Web site which we are creating is accessible by general public on the Internet. If you are creating an intranet site which will be used only by authenticated users then you need to uncheck this checkbox. The image below displays that.


Click Next to get to the Web Site Access Permissions dialog. By default, the Read and Run scripts checkboxes are checked which means that your Web site will run scripts such as ASP and is only a read-only Web site where users can't make changes to it. If you want users to download content from your Web site, modify it and upload the modified content then you need to check the Write checkbox. The image below displays that.


Click Next and then Finish to create the new Web site. The image below displays the new Web site which we created in IIS.





Configuring Websites in Windows .NET Server/IIS 6.0
Virtual Directories
virtual directory is a friendly name, or alias, either for a physical directory on your server hard drive that does not reside in the home directory, or for the home directory onanother computer. Because an alias is usually shorter in length than the path of the physical directory, it is more convenient for users to type. The use of aliases is also secure because users do not know where your files are physically located on the server and therefore cannot use that information to modify your files. Aliases also make it easier for you to move directories in your site. Rather than changing the URL for the directory, you change the mapping between the alias and the physical location of the directory.
You must create virtual directories if your Web site contains files that are located in a directory other than the home directory, or on other computer's hard drive. To use a directory on another computer, you must specify the directory's Universal Naming Convention (UNC) name, and provide a user name and password for access rights.
Also, if you want to publish content from any directory not contained within your home directory, you must create a virtual directory.
Creating a Virtual Directory
Let's say Startvbdotnet keeps their contacts in a folder called C:\StartvbdotnetContacts on their web server and would like users to be able to use the URL http://169.16.13.211/contacts when they need to access contact information. To do this we need to create a virtual directory that associates the /contacts portion of the URL, the alias for the virtual directory, with the physical directory C:\StartvbdotnetContacts where these documents are actually located.
To create a new virtual directory, right-click on Startvbdotnet Web site and select New->Virtual Directory to start the Virtual Directory Creation Wizard. The images below display that.




Click Next and type the alias for the virtual directory, say, contacts as shown in the image below.


Click Next and specify the physical folder on the local server to map to this alias. The physical folder on the server is C:\StartvbdotnetContacts. The image below shows that.


Click Next and specify permissions for this Virtual Directory as shown in the image below.


Click Next and finish the virtual directory creation wizard. The images below displays the result. You can
see the new virtual directory, contacts, with a gear symbol in the IIS wizard.




When users type http://169.16.13.211/contacts in their browser they will be shown a page with contact information for Startvbdotnet Web site. What actually happens is the content comes from a directory located outside the Web site directory but the address bar in the browser shows that the directory is part of the Web site.


Configuring Websites in Windows .NET Server/IIS 6.0
Controlling Access to Web Site
Now that we created a Web site and a virtual directory we will look at some of the administrative tasks that are required to control the Web site. The settings in this article apply only to Startvbdotnet Web site which we created in IIS and not to all Web sites under IIS. The procedure is same if you want to set the properties for all Web sites. If you want to set the following properties for all Web sites under IIS then you need to right-click on Web Sites in IIS and select properties from the menu and follow the steps which are mentioned in this article.
When you right-click on the Startvbdotnet Web site in IIS and select properties, the properties window that is displayed looks like the image below.


As you might notice from the above image the dialog box displays information as tabs, all of which are discussed below.
Web Site Information (Web Site Tab)
By defaut, the Web site tab is displayed when you right-click and select properties for any of the Web sites in IIS. The information under Web site tab is discussed below.
Web site identification
The Web site identification part displays general information like the description of the Website, IP address and the port number it is using.
Connections
Connection timeout
Connection timeouts are used to reduce the amount of memory resources that are consumed by idle connections. Time-out settings also allow you to specify how long server resources are allocated to specific tasks or clients. The default connection timeout setting set by IIS is 120 seconds which means that when a visitor accesses your site and has no activity on your site for 2 mins his connection will be timed out.
Enable HTTP Keep-Alives
Most Web browsers request that the server keep the client connection open while the server sends multiple  elements like .htm files and .gif or .jpeg files to the client. Keeping the client connection open in this way is referred to as an HTTP Keep-Alive. Keep-Alive is an HTTP specification that improves server performance. HTTP Keep-Alives are enabled by default in IIS.
Enable Logging
The logging feature allows you to collect information about user activity on your site. Information such as who has visited your site, what the visitor viewed, and when the information was last viewed, etc, can be collected with this feature. The default logging format is the W3C Extended Log File Format. You can also change the logging format based on your preferences. To change the logging format you need to make a selection from the active log format drop-down list.
To set how often you want your new log file to be created click the properties button to open the Logging Properties dialog as shown in the image below.


The Logging Properties dialog shown in the image above allows you to record log information on an hourly basis or daily or weekly or monthly basis or based on file size. If you select the Weekly option then a log file is created once every week. You can also change the location of the log file on your server in the Logging Properties dialog.
Performance (Performance Tab)
The Performance tab let's you control the performance of your Web site, like, setting the amount of bandwidth per second and allowing the number of simultaneous connections accessing the Web site at a given time. The dialog looks like the image below.


Bandwidth throttling
If the network or Internet connection used by our Web server is also used by other services such as e-mail, then we might want to limit the bandwidth used by our Web server so that it is available for those other services. If our Web server hosts more than one Web site, you can individually throttle the bandwidth used by each site. By default, bandwidth throttling is disabled. If you want to enable it, check the checkbox and enter the bandwidth you want in kbps.
Web site connections
Connection limits restrict the number of simultaneous client connections to our Web site. Limiting connections not only conserves memory but also protects against malicious attacks designed to overload our Web server with thousands of client requests. By default, unlimited connections are allowed. If you want to limit the number of connections then you need to select the "Connections limited toradio button and enter the number of connections you want to access your site at a given time.
Home Directory
The Home Directory tab in the properties dialog for the Web site is displayed below.


As you can see from the image above, the content for this Web site comes from the local path on the server. If you want the content for this Web site to come from another computer located on a network you need to select the radio button which says "A share located on another computer" and enter the computer on the network.
Redirecting
Sometimes when your site is experiencing technical difficulties or if you are doing maintenance you need to redirect visitors to another site or to another page informing what is going on. IIS lets you  redirect a Web site to a different file or folder on the same machine or to an URL on the Internet. To configure redirection you need to select the "A redirection to a URL" radio button under the home directory and choose the redirection option you want to use and specify the path as shown in the image below.






Configuring Websites in Windows .NET Server/IIS 6.0
Controlling Access to Web Site
Custom Errors
You can configure Internet Information Services (IIS) to send default HTTP 1.1 error messages or custom error messages. Custom error messages can be mapped to a file name or to a URL. The image below displays Custom Errors dialog.


You can also configure your own custom error messages. To do that, click the HTTP error that you want to change, and then click Edit to open the Edit Custom Error Properties dialog as shown in the image below.


To configure your own custom error, in the Message Type list box, click either File to return a custom error file or URL to direct the request to a custom error URL on the local machine.
Note that you cannot customize the following errors: 400, 403.9, 411, 414, 500, 500.11, 500.14, 500.15, 501, 503, and 505.
Documents (Documents Tab)
The Documents dialog is displayed in the image below.


Enable default content page
The enable default content page lets you designate the default page for your Web site. You can specify names such as index.aspx, default.aspx, login.aspx, etc. To add a new type you need to click the Add button and add the file which you want to be displayed to your users when they first enter your site.
Enable document footer
The enable document footer option lets you add a HTML formatted footer to each and every document on your site. By default, it is disabled.
HTTP Headers (HTTP Headers Tab)
The HTTP Headers dialog looks like the image below.


Enable content expiration
By default, this is disabled. If you enable content expiration and set a date then the content on your site expires after the set date. If you notice from the above image, the content for Startvbdotnet is set to expire on Tuesday, Februrary 23, 2010 at 12 AM.
Content rating
Content rating allows to classify your site from four predefined values which are Violence, Sex, Nudity and Language. By default, content rating is disabled. To enable content rating, click the edit Ratings button to open the Content Ratings dialog as shown in the image below.


In the Content Ratings dialog, enable the checkbox which says Enable ratings for this content and select a category under which your site falls and drag the track bar to indicate the level of the rating. You can also include an email address for contact and set an expiration date for this content as shown in the image above.
Directory Security (Directory Security Tab)
The Directory Security dialog looks like the image below.

Authentication and access control
Authentication and access control allows us to setup access to our site using Authentication Methods. If you click the Edit button the Authentication Methods dialog that is displayed looks like the image below.


By default, the enable anonymous access checkbox is checked which means that your site will be accessed by everyone using the IUSR_COMPUTERNAME (default IIS account). If you want to enforce restrictions and want users to be authenticated before they access your site you need to set it in this dialog.
IP address and domain name restrictions
The IP address and domain name restrictions allows us to grant or deny access to users based on their IP address. If you click the Edit button the IP Address and Domain Name Restrictions dialog that is displayed looks like the image below.


By default, all computers will be granted access. If you want to deny/block a particular user or a group of computers then you need to select the Denied access radio buttonand click the Add button to open the Grant Access dialog as shown in the image below.



If you want to block a single computer enter the IP address of the machine and click OK. If you want to deny a group of computers then select the Group of computers radio button and enter the network address and Subnet mask number to deny that group. If you want to deny users based on a domain name the select the Domain name option and enter the domain name.
Starting and Stopping Web site
You can start and stop a Web site in IIS manager. To start a Web site, select the Web site, right-click on it and from the menu select start/stop as shown below.