Просто добавляю (довольно поздно, я понимаю) мои два бита к этому обсуждению.
Я только что столкнулся с теми же симптомами, и вышеупомянутое исправление не помогло мне. Я сделал однако в итоге нашел другую причину этих симптомов и решение для этого.
Ответ 404 в моем случае содержал следующее сообщение в теле ответа:
/ * Произошла ошибка. Обратитесь к журналу или просмотреть на локальном компьютере. * /
Похоже, это показатель того, что меньше файла действительно было найдено и запрос обрабатывался dotLess (сообщение можно найти в исходном коде dotLess), но во время обработки запроса возникла исключительная ситуация FileNotFoundException.
Я отследил проблему до оператора @import, который ссылался на файл .less, который таинственно отсутствовал на сервере IIS, даже если он присутствовал на сервере разработки.
Оказалось, что для действия по сборке для этого проблемного файла .less было задано значение Нет, а не для содержимого, как для всех других файлов .less в моем проекте.
Таким образом, следующий логический вопрос был, почему на земле было неправильное действие по сборке?
Ну, я добавил файл как файл .css, затем решил импортировать его в файл .less и переименовал его в .less (поскольку .css - это подмножество .less, но less не импортирует css файлы). Я повторил процесс с новым файлом .css и обнаружил, что проблема воспроизводима.
Кажется, что Visual Studio меняет действие сборки с Content на None за кулисами как неожиданный побочный эффект переименования .css в .less. Таким образом, переименованный файл .less не публикуется на сервере IIS.