Подтвердить что ты не робот

Ошибка веб-службы "Не удалось создать тип" при вызове службы из 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" %>

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

Спасибо,

Тим

4b9b3361

Ответ 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"