Ошибка веб-службы "Не удалось создать тип" при вызове службы из Ajax
Я загрузил набор инструментов Ajax Control
Когда я создаю веб-сайт из шаблона Toolkit управления 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" %>
Кто-нибудь знает, как это решить?
Спасибо,
Тим
Ответы
Ответ 1
Я исправил это в конце.
В VS 2005 мне просто нужно было щелкнуть правой кнопкой мыши веб-службу и выбрать "View Markup". Я просто изменил разметку, чтобы использовать правильное пространство имен:
Line 1: <%@ WebService Language="C#" CodeBehind="List.asmx.cs" Class="List" %>
Я просто удалил имя проекта из пространства имен, чтобы он соответствовал пространству имен, используемому List.asmx, и эта ошибка исчезла.
Ответ 2
В моем случае я переименовал класс в нечто иное, чем файл .asmx, поэтому при ссылке на файл из кода .aspx он генерирует эту ошибку.
Итак, у меня был "AjaxManager.asmx", но переименовал класс в "AjaxService", и разметка не совпала. В моем случае оставить полное пространство имен не вызвало никаких проблем. Поэтому, если вы измените имя класса (вероятно, не рекомендуется в любом случае), обязательно исправьте разметку, как показано ниже:
<%@ WebService Language="vb" CodeBehind="AJAXManager.asmx.vb" Class="MyProject.UI.AjaxService" %>
Ответ 3
Еще одна важная вещь и простое решение, которое я узнал при создании веб-сервиса. Старайтесь не создавать код за файлом
У меня возникла такая же проблема при доступе к веб-службе в виртуальном каталоге в iis 7, затем я создал файл asmx встроенного кода, а затем получил доступ к нему, он был доступен
Ответ 4
Я решил проблему, переместив код за файлом MyService.asmx.cs
в каталог App_Code
.
Ответ 5
Я решил это, убедившись, что MyService.dll
был развернут в папке /bin
ниже моего Web.config
.
Ответ 6
Я решил это, указав полный путь кода, как этот
CodeBehind = "~/codebehind.asmx.cs"