Limitations

Limitations

This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

This section describes issues that you should consider if you are creating a production application based on this release of the Issue Tracking application code.

Invalid Handle Error

When using the Issue Tracking application, users may encounter "Invalid Handle" errors on some pages. If this occurs, click Refresh to retrieve the page correctly.

Change CompanyContact Only with the Issue Tracking Application

Contacts who are assigned to issues can be created and modified using clients other than the Issue Tracking application. This is not true for the CompanyContact. Creating or editing any contacts in the CompanyContacts folder will make the contact unusable in the Issue Tracking application.

Outlook-Compatible Contacts

The Issue Tracking application creates contacts using the Distributed Authoring and Versioning (DAV) interface to the Exchange store. Microsoft® Exchange and Microsoft Outlook® provide a rich set of properties that can be set for a contact. The Issue Tracking application user interface does not support all the possible contact properties, and those properties are defined in several different namespaces.

The following table lists the namespaces and properties set by the DAV request when the Issue Tracking application creates a contact:

Namespace Property Setting
https://schemas.microsoft.com/exchange/
outlookmessageclass IPM.Contact
urn:schemas:contacts
givenName First name
sn Last name
fileasid Set to 1 by the Issue Tracking application, but the Exchange store overrides the setting and stores it as 0
fileas Last name, first name
cn First name + Last name
title Title
businesshomepage Web page URL
telephoneNumber Business phone number
mobile Mobile phone number
facsimiletelphonenumber Business fax phone number
street Street address
st State
postalcode Postal code
co Country/region
mailingaddressid 2
https://schemas.microsoft.com/mapi/proptag/
i City
https://schemas.microsoft.com/mapi/id/{00062004-0000-0000-c000-000000000046}/
0x00008080 First name + last name (e-mail address)
https://schemas.microsoft.com/mapi/
email1emailaddress E-mail address

The Microsoft C# code that sets and retrieves these properties is contained in the contacts.cs file, in the ContactWrite and ContactGetXML members.

Multiple Data Store Access

This version of the Issue Tracking application supports connecting to a single data store at a time. The data store that the application accesses is set when the administrator provides logon credentials when the application starts. A production version based on this application might be designed to support simultaneous access of multiple data stores on multiple Exchange servers.

Multiple Server Deployment

This version of the Issue Tracking application can be deployed on multiple computers, each running Microsoft .NET Framework. However, there is no automated support for this in the Issue Tracking application Setup program. A production version based on this application should be deployable and manageable on multiple computers.

You can use the following proceedure to create a distributable copy of the application. This proceedure creates a binary distributable (ITA.DLL) and the associated .aspx files.

  1. Open Microsoft Visual Studio® .NET, click File, click Add Project, and then click New.
  2. In the Add New Project dialog, choose Setup and Deployment Projects from the Project Types. Choose Web Setup Project from the Templates. Specify a name for the project, such as ITASetup2. Click OK.
  3. Right-click Web Application Folder, choose Add, and click Project Output.
  4. Click Primary output, and then click OK
  5. Click Build, choose Configuration Manager, and select the project name (such as ITASetup2).
  6. Build the project. A new GUID will automatically be assigned to the setup project.

Scalability Issues

The Issue Tracking application does not use the Microsoft ASP.NET Session or Application variables to store data extracted from the Exchange store.

When creating applications for deployment onto a set of clustered front-end Web servers, session-state information must be available to any server in the cluster. If not, the cluster must track the client source IP address and assign that address to the same Web server for each request.

ASP.NET provides the ability to store session state information in a local or remote Structured Query Language (SQL) database. In scenarios having multiple independent front-end Web servers, storing session states in a database accessible to all the front-end servers removes the need for sending requests from the same client IP addresses to a single Web server.

Security Architecture

The Issue Tracking application relies on manually configured item-level security on the Web server to restrict access to the administrative ASP.NET pages. In a large-scale deployment, security considerations would receive more attention and planning. In addition to restricting page-level access, you should consider how to secure the data, how to secure access to the server storing the data, how to make security management easier, and so on.

Rolling Back Failed Changes to the Store

If a failure occurs while the Issue Tracking application is writing to the store, it will not roll back any partial changes that succeeded before the write operation failed.

Send us your feedback about the Microsoft Exchange Server 2003 SDK.

Build: June 2007 (2007.618.1)

© 2003-2006 Microsoft Corporation. All rights reserved. Terms of use.