2009-05-20 13 views
12

Ho scaricato l'Ajax Control ToolkitWeb Errore di servizio 'Impossibile creare il tipo' quando si chiama il servizio da Ajax

Quando creo un sito web dal modello di controllo Toolkit Ajax, posso creare un servizio web in un unico file (asmx) e collegarlo a diversi controlli Ajax forniti nel toolkit.

Tuttavia, se aggiungo il Toolkit per un ASP.Net progetto web 2.0 appliction esistente Non riesco a creare servizi web in un unico file ASMX. Se creo un servizio Web, VS crea sempre un codice anche dietro il file. Come risultato di questo chiama al servizio web (o il caricamento del servizio direttamente nel browser) genera il seguente errore:

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

Qualcuno sa come risolvere questo?

Grazie,

Tim

risposta

21

Ho fissato questo alla fine.

In VS 2005 avevo solo bisogno di fare clic destro sul servizio web e selezionare "Visualizza Markup". Ho appena cambiato il markup di utilizzare la corretta namespace:

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

ho appena rimosso il nome del progetto dallo spazio dei nomi in modo che corrisponda allo spazio dei nomi utilizzato da List.asmx e questo errore è andato via.

+0

Si potrebbe pensare che Visual Studio sarebbe farlo automaticamente ... se non si conosce già meglio. –

+0

Oltre a questa osservazione - il nome di classe è – riffnl

+0

Grazie case-sensitive (come al solito) - VS 2013 ha ancora questo problema! –

1

Nel mio caso avevo rinominato la classe qualcosa di diverso rispetto al file .asmx, così quando si fa riferimento il file dal codice aspx sarebbe generare questo errore.

così ho dovuto 'AjaxManager.asmx', ma aveva ribattezzato la classe a 'AjaxService', e la marcatura non corrisponde. Nel mio caso, lasciare lo spazio dei nomi completo non ha causato alcun problema. Quindi, se si cambia il nome della classe (probabilmente non consigliato in ogni caso), assicurarsi di correggere la marcatura così come illustrato di seguito:

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

Ho fatto lo stesso errore. Mi aspettavo che Resharper si prendesse cura della ridenominazione, ma ovviamente avrei dovuto pensarci di più. – Chrysalis

1

Un altro cose importanti e soluzione semplice che ho scoperto durante la creazione di servizi web. Cercate di evitare il codice di creare dietro file di

di file ASMX

stavo affrontando lo stesso problema durante l'accesso servizio Web in una directory virtuale di IIS 7, poi ho creato il codice inline e quindi accedervi, era accessibile

1

I risolto il problema spostando il codice dietro il file MyService.asmx.cs nella directory App_Code.

0

ho risolto questo dando il percorso completo del codebehind come questo

Codebehind = "~/codebehind.asmx.cs"

1

Ho risolto questo assicurando che MyService.dll è stato schierato nella cartella /bin qui sotto il mio Web.config.

Problemi correlati