Проблема в том, что ваше регулярное выражение неверно.Используйте следующее:
routes.MapRoute(
"Activate",
"Account/Activate/{username}/{key}",
new { controller = "Account", action = "Activate" },
new { username = @"^[\w\.]+$", key = @"^[\w\.]+$" }
);
Показанное регулярное выражение будет соответствовать строке, содержащей любой символ слова (\ w совпадает с [A-Za-z0-9_]), или точке, которая не имеет пробелов илидругие символы.
ОБНОВЛЕНИЕ
После тестирования маршрута и копирования его в мой ответ, я забыл изменить значение контроллера на «Учетная запись».Я обновил маршрут выше.