Ошибка веб-службы «Не удалось создать тип» при вызове службы из Ajax - PullRequest
15 голосов
/ 20 мая 2009

Я скачал инструментарий Ajax Control

Когда я создаю веб-сайт из шаблона набора инструментов управления Ajax, я могу создать веб-сервис в одном файле (asmx) и подключить его к различным элементам управления Ajax, представленным в комплекте инструментов.

Однако, если я добавлю Инструментарий в существующий веб-проект приложения ASP.Net 2.0, я не смогу создать веб-службы в одном файле asmx. Если я создаю веб-сервис, VS всегда создает код и для файла. В результате этого обращения к веб-службе (или загрузки службы непосредственно в браузере) выдается следующая ошибка:

Parser Error 
Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not create type 'AddAjaxToApplication.List'.
Source Error: 

Line 1:  <%@ WebService Language="C#" CodeBehind="List.asmx.cs" Class="AddAjaxToApplication.List" %>

Кто-нибудь знает, как решить эту проблему?

Спасибо

Тим

Ответы [ 7 ]

23 голосов
/ 21 мая 2009

Я исправил это в конце.

В VS 2005 мне просто нужно было щелкнуть правой кнопкой мыши веб-сервис и выбрать «Просмотреть разметку». Я только что изменил разметку, чтобы использовать правильное пространство имен:

Line 1:  <%@ WebService Language="C#" CodeBehind="List.asmx.cs" Class="List" %>

Я просто удалил имя проекта из пространства имен, чтобы соответствовать пространству имен, используемому List.asmx, и эта ошибка исчезла.

1 голос
/ 30 мая 2018

Проверьте в папке «Опубликованные», если путь к указанным файлам классов действительно существует, или нет, для меня папка App_Code отсутствовала в опубликованном каталоге, поэтому я вручную разместил папку там, и она отлично работает: -)

1 голос
/ 17 апреля 2015

Я решил это, убедившись, что MyService.dll был развернут в папке /bin ниже моего Web.config.

1 голос
/ 31 января 2013

Я решил проблему, переместив код файла MyService.asmx.cs в каталог App_Code.

1 голос
/ 14 апреля 2012

Еще одна важная вещь и простое решение, которое я обнаружил при создании веб-сервиса. Старайтесь не создавать код за файлом

Я столкнулся с той же проблемой при доступе к веб-службе в виртуальном каталоге в iis 7, затем я создал файл asmx встроенного кода и затем получил к нему доступ, он был доступен

1 голос
/ 19 июля 2011

В моем случае я переименовал класс в нечто отличное от файла .asmx, поэтому при обращении к файлу из кода .aspx возникнет эта ошибка.

Итак, у меня был AjaxManager.asmx, но я переименовал класс в AjaxService, и разметка не соответствовала. В моем случае выход из полностью определенного пространства имен не вызвал никаких проблем. Поэтому, если вы измените имя класса (возможно, не рекомендуется), обязательно исправьте разметку, как показано ниже:

<%@ WebService Language="vb" CodeBehind="AJAXManager.asmx.vb" Class="MyProject.UI.AjaxService" %>
0 голосов
/ 16 мая 2013

Я решил это, указав полный путь к коду позади этого

CodeBehind = "~ / codebehind.asmx.cs"

...