Método WebApi com parâmetro de endereço de email retorna 404 do HttpClient

Eu tenho um controlador WebApi com um método que se parece com isso:

[HttpGet]
[AcceptVerbs("GET")]
public HttpResponseMessage Run(string reportName, int someId, string someText, DateTime asOfDate, string username)

Eu tenho uma rota personalizada configurada especificamente para esta ação. Quando navego meu navegador para o serviço da Web, tudo funciona bem e a ação apropriada é executada:

http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/[email protected]

No entanto, quando eu tento programaticamente chamar o serviço da web usando o HttpClient e executar um "Get" recebo um erro 404. Não recebo um erro quando o parâmetro username não é um endereço de e-mail. Por exemplo, quando o nome de usuário é apenas "usuário", tudo funciona bem. Aqui está o código de exemplo:

var url = "http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/[email protected]"
var client = new System.Net.Http.HttpClient();
var response = client.Get(url);

//fails here with 404 error
response.EnsureSuccessStatusCode();

Eu tentei UrlEncoding o endereço de e-mail sem sorte. Qualquer conselho é apreciado.

questionAnswers(4)

yourAnswerToTheQuestion