Error message when a CGI program that is written by using the .NET Framework 2 makes Web service calls: "System.ArgumentException: Illegal characters in path" (922780)



The information in this article applies to:

  • Microsoft .NET Framework 2

SYMPTOMS

Consider the following scenario. A Common Gateway Interface (CGI) program is written by using the Microsoft .NET Framework 2. The CGI program is running on Microsoft Internet Information Services (IIS) 6.0. When the CGI program makes Web service calls, the CGI program fails. Additionally, you receive the following exception error message:
System.ArgumentException: Illegal characters in path

CAUSE

This problem occurs because IIS 6.0 starts CGI processes with the \\?\ path prefix to prevent path canonicalization attacks. Certain components of the .NET Framework 2 cannot handle such paths correctly.

WORKAROUND

To work around this problem, follow these steps:
  1. Click Start, click Run, type inetmgr, and then click OK.
  2. In the left pane, expand the computer_name, and then expand Web Sites.
  3. Right-click the Web site that hosts the CGI program, and then click Properties.
  4. Click the Home Directory tab, and then click Configuration.
  5. Click the Mappings tab, and then click Add.
  6. Click Browse, locate and then double-click the CGI program executable file.

    Note After the path appears in the Executable box, click in the Executable box to initialize the path.
  7. In the Extension box, type .exe, and then click OK three times.

Modification Type:MajorLast Reviewed:8/5/2006
Keywords:kbprb kbtshoot KB922780 kbAudDeveloper