Сообщение об ошибке Parser веб-службы: не удалось создать тип 'xxx'

Я получаю ошибку парсера, когда пытаюсь просмотреть веб-сервис.

Уже найдено столько ответов, но никто не помог мне. Если кто-нибудь может направить меня к полезной ссылке, которую я мог бы упустить, это будет очень полезно.

Вот сценарий:

У меня есть веб-сервис, встроенный в VS-2010 (framework 4.0), размещенный в IIS 7.5, который использует пул приложений "ASP.NET v4.0 Classic". Это работало нормально, пока я не переустановил его. Он начал показывать ошибку ниже


Ошибка Parser

Описание: Произошла ошибка во время разбора ресурса, необходимого для обслуживания этого запроса. Ознакомьтесь со следующими подробными сведениями о синтаксическом анализе и соответствующим образом измените исходный файл.

Сообщение об ошибке Parser: не удалось создать тип "AuthenticateUser".

Ошибка источника:

Строка 1: <% @WebService Language = "С#" CodeBehind = "~/App_Code/AuthenticateUser.cs" Class= "AuthenticateUser" % >

Исходный файл:/WebService101/Services/AuthenticateUser.asmx Линия: 1

Информация о версии: Microsoft.NET Framework Версия: 4.0.30319; Версия ASP.NET: 4.0.30319.1016


Пожалуйста, помогите.

Ответ 1

Пожалуйста, проверьте, присутствует ли вся ваша dll в папке веб-службы. Я смог найти это с помощью инструмента под названием "Beyond Compare". где я сравнивал старую рабочую копию каталога веб-сервисов с новой.

Ответ 2

Я получил ту же ошибку, в моем случае разрешение заключалось в использовании полного имени класса (имя класса с пространством имен) в файле .asmx.

<%@ WebService Language="C#" CodeBehind="~/App_Code/AuthenticateUser.cs" Class="AuthenticateUser" %>

станет

<%@ WebService Language="C#" CodeBehind="~/App_Code/AuthenticateUser.cs" Class="MyProjectName.AuthenticateUser" %>

Ответ 3

Кроме того, убедитесь, что путь вывода сборки находится в папке "bin \" ТОЛЬКО. Проект веб-службы не может использовать созданные DLL файлы, если они застряли под "bin\Debug\AnyCPU" или "bin\Release\x86".

Мы с коллегой потратили 2 часа на то, чтобы проект Web Service работал на новой рабочей станции, которая отлично работала на старой машине.

Надеюсь, этот совет поможет кому-то другому использовать Google!

Ответ 4

У меня была эта проблема, и я много лет ломал голову и проводил много исследований в Интернете. Это было в основном потому, что файл и класс должны иметь одно и то же имя, т.е. Я вырезал код из другого места, а класс назывался fileUploader. Файл назывался fileuploader.ashx.

Итак, вот что вызвало мои проблемы. Когда я переименовал класс в файл-загрузчик, он работал отлично. Ааааа!! Несколько дней впустую!

Ответ 5

Удалить сайты/Тохин/часть например:

тогда это сработает.

Ответ 6

Проблема в том, что ASP ищет класс с именем AuthenticateUser, но не может его найти.

В Visual Studio щелкните правой кнопкой мыши файл веб-службы (AuthenticateUser.asmx) и выберите "Просмотреть разметку". Это позволит вам найти строку 1 файла asmx, где находится ошибка. Посмотрите на конец этой строки. В вашем примере

Line 1: <%@ WebService Language="C#" CodeBehind="~/App_Code/AuthenticateUser.cs" Class="AuthenticateUser" %>

Убедитесь, что класс соответствует имени публичного класса, которое вы дали веб-службе. Другими словами, вы переименовали класс в "AuthenticateUser" или что-то еще после того, как создали этот файл? Иногда класс, упомянутый в строке 1, не совпадает с именем, которое вы дали классу в файле asmx webservice.

Чтобы решить эту проблему, строка в начале вашего веб-сервиса должна соответствовать классу, указанному в строке 1, и выглядеть следующим образом:

Public Class AuthenticateUser

    ...your webservice code here...

End Class