2009-05-20 17 views
12

He descargado el kit de herramientas AJAX ControlWeb Error de servicio 'no se pudo crear el tipo' cuando se llama a un servicio de Ajax

Cuando creo un sitio web de la plantilla AJAX Control Toolkit, que puede crear un servicio web en una sola archivo (asmx) y conectarlo a diferentes controles Ajax provistos en el kit de herramientas.

Sin embargo, si agrego el Toolkit a un proyecto web de aplicación ASP.Net 2.0 existente, no puedo crear servicios web en un solo archivo .mx. Si creo un servicio web, VS siempre crea un código detrás del archivo también. Como resultado de esto llama al servicio web (o cargar el servicio directamente en el navegador) generar el error siguiente:

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" %> 

¿Alguien sabe cómo resolver esto?

Gracias,

Tim

Respuesta

21

que fijan esto al final.

En VS 2005 solo necesitaba hacer clic derecho en el servicio web y seleccionar "Ver marcado". Acabo de cambiar el margen de beneficio de utilizar el espacio de nombres correcta:

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

Sólo he quitado el nombre del proyecto del espacio de nombres para que coincida con el espacio de nombres utilizado por List.asmx y este error se fue.

+0

Pensarías que Visual Studio haría esto automáticamente ... si no lo conocías ya. –

+0

Además de esa observación, el nombre de clase distingue entre mayúsculas y minúsculas (como de costumbre) – riffnl

+0

Gracias - ¡VS 2013 todavía tiene este problema! –

1

En mi caso había cambiado el nombre de la clase a algo diferente que el archivo .asmx, por lo que al hacer referencia al archivo desde el código .aspx generaría este error.

Así que tenía 'AjaxManager.asmx', pero había cambiado el nombre de la clase a 'AjaxService', y el marcado no coincidía. En mi caso, dejar el espacio de nombres totalmente calificado no causaba ningún problema. Así que si cambia el nombre de la clase (probablemente no es recomendado de todos modos), asegúrese de corregir el marcado, así como se muestra a continuación:

<%@ WebService Language="vb" CodeBehind="AJAXManager.asmx.vb" Class="MyProject.UI.AjaxService" %> 
+0

Cometí el mismo error. Esperaba que Resharper se encargara de renombrar, pero por supuesto debería haber pensado más. – Chrysalis

1

Uno más cosas importantes y solución simple que me enteré mientras que la creación de servicios web. Trate de evitar el código de creación detrás de archivo

archivo asmx

que estaba enfrentando el mismo problema al acceder a servicios web en un directorio virtual en IIS 7, a continuación, he creado el código en línea y luego acceder a ella, que era accesible

1

I Resolvió el problema moviendo el código detrás del archivo MyService.asmx.cs al directorio App_Code.

0

He resuelto esto dando la ruta completa del código subyacente como éste

CodeBehind = "~/codebehind.asmx.cs"

1

He resuelto esto asegurándose de que MyService.dll se desplegó en la carpeta /bin a continuación mi Web.config.

Cuestiones relacionadas