Licensing and deployment


Summary
Before you deploy a Web Mapping Application to a production server, you might need to install and configure software on the production server. The geographic information system (GIS) software used in the application must be authorized and licensed at an appropriate level. You might also need to set up services and copy data to production servers.
Deploying the Web Mapping Application involves deploying the Web site using standard ASP.NET deployment techniques and possibly modifying the configuration of the Web site if the GIS server or services used in deployment are different from those used in development.
This topic contains information about licensing requirements, configuring a GIS server and services, and completing Web site deployment.

In this topic


Licensing

The Web Mapping Application uses services from one or more GIS servers, which can include ArcGIS for Server and ArcIMS Services. The Web and GIS servers must have appropriate licensing for the Esri software used. The Application Developer Framework (ADF) installed on the Web server must be licensed in connection with Esri server software, whether you install the full server software package or the ADF Runtime.
Installations of the Web ADF and server software for development also require a license. The Esri Developer Network (EDN) offers licenses of Esri software specifically for development. See About the EDN Subscription Program for more information on EDN for development purposes.
The following subsections give brief summaries of licensing for Esri server software. For details, consult the Help for the respective software, or contact your local Esri account representative.

ArcGIS for Server

All components of ArcGIS for Server must be licensed. The post-installation for ArcGIS for Server prompts you to authorize the computer on which you are installing the software. The licensed components of ArcGIS for Server include the ADF, server object manger (SOM), server object container (SOC), and Spatial Database Engine (SDE).
ArcGIS for Server offers a scalable line of server product editions built on a common set of technology components that are distinguished by functionality and capacity. The functionality in ArcGIS for Server is provided by the following editions:
  • Basic
  • Standard
  • Advanced
Each edition is available at the following levels (scaled according to capacity):
  • Workgroup
  • Enterprise
To view a functionality matrix describing the features that are available at each edition and level, see ArcGIS for Server Key Features on the Esri Web site.

ArcIMS

ArcIMS requires a license for Spatial Server. The post-installation for ArcIMS prompts you to authorize the computer on which you are installing the software.

Deployment

This section explains the process for deploying a Web Mapping Application.

Preparing the Web Mapping Application during creation and development

Follow these guidelines as you create your Web application:
  • Service names—Use the same names for map services and other services you will use on the production server. If different names are used, configuration changes will need to be made to the Web site files.
  • Data layers and schemas—Use the same data layers in each service as those that will be used during production. At a minimum, use data layers with the same schemas (field names) and spatial references as those that will be used in production. Layers can have different numbers of features (records). Controls in the Web Mapping Application, such as MapTips and QueryAttributeTask, store information, such as layer position in the map and field names. If the layer names or fields differ, the Web Mapping Application might fail.
  • Server names—Use the same GIS server names for services as those that will be used in production if possible. If different server names are used at deployment, modify the configuration of the application. For details on these modifications, see the Updating settings for servers, services, and identity subsection.
  • ArcGIS identity—When using ArcGIS for Server local services, you must add an identity—with domain, username, and password—to the Web application. ArcGIS Server Manager (Manager) automatically encrypts and stores the identity when adding the ArcGIS for Server machine to Manager. If you are using Visual Studio to create the application, add the identity with the Add ArcGIS Identity utility. You can encrypt this identity as well. When you deploy the application, you must update the identity credentials.
  • Precompiling applications—If you are using ASP.NET to precompile the Web application before deployment, set the values for the server and services on the production server before compilation. For information on changing values before precompilation, see the previously mentioned Updating settings for servers, services, and identity subsection.
  • Turn debugging off—If you developed or customized the Web Mapping Application in Visual Studio, turn debugging off in the application before deployment. Debug versions cause slower performance and are normally unnecessary on deployment servers.

    Do the following steps to turn off debugging:
    1. Open the web.config file in a text editor, and if the <compilation> tag exists, change the debug value from true to false as shown in the following code example:
[C#]
 < compilation debug = "false" >
    1. Save the web.config file.
    2. Check each .aspx page to ensure that if the <@Page> directive at the top of the file contains a Debug attribute, it is set to false.
    3. If you customized your Web application by adding a dynamic-link library (DLL) from another project, confirm that you have a release version of that DLL. The DLL is located in the bin folder in your Web application. Typically, a release version has no .pdb file with the .dll file. If it does have a .pdb file, its date is older than that of the .dll file.

Installing software, data, and services on the production server

Follow these guidelines when you install software, data, and services on the production server:
  • Required software—Install the following software on the production Web server (in this order):
    • Internet Information Servies (IIS)
    • .NET Framework (same version used during development)
    • Esri Web ADF Runtime
The version of Esri software must be the same on the deployment machine as on the development machine, including service packs.
  • Optional installations—The following software can be installed on the production server:
    • Visual Studio 
    • Visual Web Developer Express (VWDE)
    • Esri Web ADF full install with server software (instead of ADF Runtime)
Visual Studio or VWDE makes configuration easier on the production server; however, some organizations do not allow development software on production machines.
  • Data and GIS servers—If needed, install data (files and ArcSDE) and GIS software (ArcGIS for Server and/or ArcIMS) on servers that are accessible to the production Web server. See the ArcGIS for Server Help for information on installing and configuring those software packages.
    • If the Web application uses ArcGIS for Server, the edition used in deployment must support the functionality used in the application. For example, if the Web application performs editing using the Editing task, the Advanced edition of ArcGIS for Server is required.
    • If you are using a GIS server (ArcGIS for Server and/or ArcIMS) for production that was not used for development, create services with the same data used during development. Use the same name for services if possible. Use the same data layer names with the same schemas (field names). The easiest approach is to use the same projects (MXD, AXL, LOC files, and so on) as those used in development. If the data layer names or fields differ, the Web Mapping Application might not perform as expected on the production server. The data layers can differ in number of features (records) and in values within records and fields.
    • See the product Help and the Esri Support Center Web site for information on distributed and fail-over configurations for ArcGIS for Server or ArcIMS.
  • User and role data—If you secured your application with Manager (or other standard method), you might need to copy the user and role data from the development environment to the production environment.
  • Windows Server 2003—If you are using Windows 2003 Server, you might need to allow ASP.NET applications. In IIS Manager, go to <Server name>, Web Service Extensions. If ASP.NET v2.0.xxxx is not marked as Allowed, select it in the list and click Allow.

Deploying the Web site to the production Web server

Options for deploying (copying) the Web site to the deployment Web server include the following:
  • Copy the Web site (Xcopy deployment):
  • Visual Studio Copy Web Site tool:
  • Zip file:
    • Use a Zip file if you cannot map a drive to the deployment server, or cannot use the Visual Studio Copy Web Site tool. This option can skip hidden files and file attributes.
    • When creating a Zip file of the Web site, include subfolder paths in the Zip file.
  • Installer package:
    • If you created a Web application that will be deployed on multiple servers, you can create an installer package for the Web site. See online resources or books on ASP.NET for information on creating installer packages.
For more information, consult sources on ASP.NET deployment, such as the Microsoft topic, Overview of Deploying ASP.NET Applications.

Enabling the Web site folder as a Web application in IIS

The Web site must be marked in IIS as a Web application. How you do this depends on whether the newly copied Web site folder is in the C:\Inetpub\wwwroot folder or elsewhere on the production machine. If it is not in the C:\Inetpub\wwwroot folder, you must set the Web site folder as a virtual directory. For more information, see the Microsoft topic, Walkthrough: Creating ASP.NET Web Application Root Directories in IIS 6.
Do the following steps to mark a folder in C:\Inetpub\wwwroot as an application:
  1. Open IIS Manager from the Control Panel, then Administrative Tools.
  2. Expand the left panel of IIS Manager to find your Web site location. In Windows 2003 Server, the Web site is in the Web Sites subfolder in the left panel. By default, folders in wwwroot are located in the Default Web Site tree.
  3. Right-click the WebSite folder and select Properties. The Web Site Properties dialog box appears.
  4. Click the Directory tab.
  5. Click the Create button under Application Settings. This sets the Web site name in the Application name box and changes the button name to Remove. (If the button already says Remove, the Web site is already set as an application.)
  6. Confirm that Execute permissions is set to Scripts only.
  7. Click OK and close IIS Manager.
Do the following steps to create a virtual directory for a folder elsewhere on the system:
  1. Open IIS Manager from Control Panel, then Administrative Tools.
  2. Expand the left panel of IIS Manager and click the Default Web Site item. This displays Web sites currently set up for use in IIS.
  3. Right-click Default Web Site, select New, and click Virtual Directory. The Virtual Directory Creation Wizard opens.
  4. Click Next. The Virtual Directory Alias panel opens.
  5. Type a name for the Web site. This is the name users will use to get to the Web site. For example, if you name the Web site MapViewer1, the uniform resource locator (URL) for the site will be http://<server name>/MapViewer1.
  6. Click Next. The Web Site Content Directory panel opens.
  7. Click Browse, navigate to the WebSite folder you copied to the production server, and click Next. The Virtual Directory Access Permissions panel appears.
  8. Select the check boxes for Read and Run scripts, and click Next.
  9. Click Finish and close IIS Manager.

Updating settings for servers, services, and identity

If the Web application on the deployment server uses different servers or different service names than the development server, these values must be updated in the Web application. Also, if the Web application uses ArcGIS for Server local services, you must modify the identity used by the application.
If the application is secured to require user login, you might need to update the connection information in the web.config file to enable the application to connect to the membership and role provider data. For more information, see ASP.NET security.
The easiest approach to updating the values for servers and services is to use Visual Studio or VWDE and perform the following steps:
  1. Open the Web application.
  2. Double-click the default.aspx page, click the Design view tab, and set the resource manager values (MapResourceManager and any others used, such as GeocodeResourceManager).
  3. Use the smart tag on the ResourceManager control to edit the resource properties.
If Visual Studio or VWDE is not available, and the GIS server or service names are different on the deployment server, modify the properties manually by performing the following steps:
  1. Identify the server, service names, and usernames and passwords that need to be updated. If necessary, open the Web application on the development machine and record the values in the MapResourceManager, GeocodeResourceManager, and GeoprocessingResourceManager controls. Determine the new values for the corresponding servers and services on the deployment machine.
  2. Open default.aspx in a text editor (such as Notepad) or development environment (such as Visual Studio). If you customized the Web application by adding pages with additional ADF resource managers, update the values for server and services on those pages as well.
  3. Search for the GIS server name used during development, and replace this value with the GIS server to be used in deployment. For ArcGIS for Server Internet or ArcIMS Hypertext Transfer Protocol (HTTP) resources, obtain the correct server URL (for example, http://<servername>/arcgis/services), then update map and other service names if they are different from those on the production GIS server. These values can be in tags for a MapResourceManager, GeocodeResourceManager, or GeoprocessingResourceManager control. Replace only the server or service values. Preserve the escaped version of quote (&quot;) and other characters. Do not add extra spaces or characters to the resource strings.
  4. If the production GIS server uses ArcGIS for Server local resources, see the ArcGIS identity subsection for more information.
  5. If the production GIS server requires that you add a username and password for ArcIMS, ArcGIS for Server Internet resources, or if these values are different from those used on the development server, add or modify these identity values. The Identity portion of the Definition attributes for the resource managers must be set to values that are valid for the production GIS server.
If available on the production server, use Visual Studio or VWDE to generate an encoded version of the username and password credentials. If Visual Studio and VWDE are not available on the production server, you can either create encoded values in Visual Studio on a development machine, and copy and paste them into the page on the production server, or you can use the ADFUtil program to create the encrypted identity.
To create the identity using Visual Studio on a development server, perform the following steps:
  1. Open the Web application.
  2. Set the identity for each resource manager, save the page, and copy it to the production server. If the login for the production server is not recognized on the development machine, you can create an identity in a temporary resource item or page without running the page, then copy the identity value from the page.

    An example of a resource item definition with an identity value is shown in the following code example:
[C#]
 < esri: mapresourcemanager id = "MapResourceManager1" runat = "server" >  <
     ResourceItems >  < esri: MapResourceItem Name = "World"Definition = 
     "<Definition DataSourceDefinition=&quot;localhost@5300&quot; DataSourceType=&quot;ArcIMS&quot; Identity=&quot;WMYMENUMWCPZUKYRAIIBDEFBPZ&quot; ResourceDefinition=&quot;World&quot; DataSourceShared=&quot;True&quot; />"DisplaySettings = "visible=True:transparency=0:mime=True:imgFormat=PNG8:height=100:width=100:dpi=120:color=:transbg=False" /  >  <  / ResourceItems >  <  / esri: mapresourcemanager >
To create the encrypted identity on the production server using the ADFUtil program, perform the following steps:
  1. Click Start and click Run to open a command prompt. Type cmd in the Run dialog box, and click OK.
  2. Change to the DotNet directory in your ArcGIS Developer Kit installation folder. For example, type cd "C:\Program Files\ArcGIS\DeveloperKit10.1\DotNet" and press Enter (use quotation marks around the path when it contains spaces).
  3. Type the command to create the encrypted identity by using the -i option for adfutil. Include the username and password, separating the two with a semicolon, for example, ADFUtil.exe -i myusername;mypassword. A prompt appears with the encrypted identity.
  4. Add this identity into the Identity setting in the resource manager Definition string. For example, if the encrypted string is bDQLnmv1Mwkh9@3PKMbB0C==, the Identity part of the Definition resembles the following code example:
[C#]
Identity = &quot;
bDQLnmv1Mwkh9@3PKMbB0C ==  & quot;

ArcGIS identity

If your Web Mapping Application uses ArcGIS for Server local services, an identity is stored in the Web site for accessing those services. If a GIS server or an ArcGIS user is used for deployment that was not used for development, you must update the identity. This is true even if you use a domain account for the identity and the production server is a member of the domain. For more information on updating ArcGIS identity, see ASP.NET identity and impersonation.