Может быть, я что-то упустил, но кажется, что вы могли просто
routes.MapRoute(
"ServiceHandler",
"Services/{service}.svc/{*path}",
new { controller = "services", action = "ParseAndExecuteServiceCall" service = "TwitterService", path = "GetLatestTweets" }
);
и проанализируйте удаленный вызов в контроллере, если он более сложный. У вас может быть только один параметр «catchall» в маршрутах, но вы можете использовать столько переменных, сколько хотите, и ограничивать / определять их с помощью реализаций IRouteConstraint или шаблонов Regex.
Кроме того, с ответом на комментарий ниже об обработчике .svc vs. .mvc - ничто не ограничивает вас от переопределения IHttpHandler. Для этого вам необходимо переопределить метод IRouteHandler in для GetHttpHandler () ... Тогда вы можете делать любую обработку, какую захотите.