Напоминаю, что Url Routing по умолчанию сначала проверяет, существует ли файл, и не заданы ли запятые в именах файлов, что, возможно, объясняет, почему вы получаете ошибки. IIS может иметь устаревший код, который прерывает запрос, прежде чем он может попасть на asp.net для обработки.
Сообщение Скотта Хансельмана в блоге немного говорит об этом и может быть актуально для вас.
В качестве общего комментария: перезапись URL-адреса обычно используется для того, чтобы сделать URL-адрес удобным и легким для запоминания.
~/page.aspx?id=1,2,3,4
не хуже и не лучше, чем ~/page/1-2-3-4.aspx
: оба сложны в использовании, так зачем делать дополнительные усилия? Избегайте создания новых форм URL только потому, что вы можете. Пользователи, служба поддержки и другие разработчики будут просто сбиты с толку.
Перезапись URL лучше всего использовать для преобразования
~/products/view.aspx?id=1
~/products/category.aspx?type=beverage
в
~/products/view/1
~/products/category/beverage