Я тоже с этим боролся. Моя точная проблема заключалась в том, что у меня был веб-сервис ASMX, который, когда я вводил параметр в веб-метод и проверял его, давал мне 404. В прошлом конкретный метод работал нормально и не менялся только переиздан. Потом я попал сюда и перепробовал все ответы, и ничего не помогло.
Мое окончательное решение? Я знаю, что это радикально, но я только что создал новое решение Visual Studio и веб-проект. Выбрал MVC, затем я сделал «Add»> «New Item», выбрал «Visual C #»> «Web» и «Web Service (ASMX)» под этим. Я скопировал весь свой старый код с выделенным кодом, затем принял к сведению пространство имен, которое дало новый файл в моем новом проекте, затем вставил весь свой старый код в новый файл с выделенным кодом в новом проекте и поместил пространство имен вернуться к тому, что было.
Затем я создал свои папки в своем проекте, которые у меня были до того, как с помощью Visual Studio выполнить команду «Добавить»> «Новая папка», затем скопировал обратно мои файлы в папки из моего другого проекта с помощью проводника Windows, затем щелкнул правой кнопкой мыши каждая папка в Visual Studio и "Добавить"> "Существующий элемент ..." и перетащил элементы из этих папок в папки моего нового проекта Visual Studio. Я снова сослался на все свои сборки .NET, открыв оба проекта, чтобы я мог сравнить, на какие из них я ссылался ранее (их было несколько). Я должен был назвать свой новый проект немного по-другому - в основном я сделал что-то сравнимое с «GeneralWebApp» вместо «MyWebApp», например - поэтому мне пришлось сделать «Заменить все» во всем моем решении, чтобы заменить это имя, чтобы получить правильное пространство имен для всех моих файлов.
Затем я выполнил «Перестроить все» в проекте, а затем запустил его с помощью кнопки «Воспроизвести», которую выдает Visual Studio, когда я получил его для правильной сборки. Работало нормально. Поэтому я опубликовал его, и все было нормально на сервере, где я его опубликовал, когда я запускал его оттуда. У меня нет объяснения тому, что произошло, но вот как я прошел через это. Это не плохой тест, просто чтобы увидеть, не испортил ли что-то Visual Studio.