El método C # SerialPort # Open () lanza ArgumentException debido al nombre del puerto?

En mi máquina local,

Windows XPPuertos (COM y LPT)COM3Puerto serie virtual RIM v2 (COM4)Puerto serie virtual RIM v2 (COM5)

el siguiente código,

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Threading;

namespace OpenSerialPortTest
{
    class Test
    {
        static void Main(string[] args)
        {
            foreach (String serialPortName in SerialPort.GetPortNames())
            {
                SerialPort serialPort = new SerialPort(serialPortName);
                try
                {
                    serialPort.Open(); // Line 19
                    Console.WriteLine(serialPort.PortName);
                }
                catch (Exception ex1)
                {
                    Console.WriteLine(ex1);
                    try
                    {
                        serialPort.Close();
                    }
                    catch (Exception ex2)
                    {
                        Console.WriteLine(ex2);   
                    }
                }
            }
            Console.ReadLine();
        }
    }
}

tirará lo siguienteArgumentException,

Es decir,

El nombre del puerto dado no comienza con COM / com o no se resuelve en un puerto serie válido.

¿Alguien sabe por qué ocurre esto?

Respuestas a la pregunta(1)

Su respuesta a la pregunta