Recentemente ho aggiunto alcuni spazi dei nomi al mio file web.config in modo che tutte le mie pagine di aspx possano fare riferimento a varie costanti ed enumerazioni senza la necessità di aggiungere un'istruzione import su ogni pagina aspx. Da quando abbiamo aggiunto questo, stiamo ricevendo un errore quando proviamo a testare un servizio web asmx. Sembra che durante la generazione WSDL otteniamo il seguente errore:Errore di riferimento ambiguo durante la compilazione runtime
CS0104: 'Message' is an ambiguous reference between 'System.Web.Services.Description.Message' and 'InsTech.ForeSight.Message'
Mentre la ricerca di questo, ho scoperto che DefaultWsdlHelpGenerator.asmx viene chiamato durante la compilazione runtime e c'è un metodo in là che ha la seguente firma:
void WriteSoapMessage(MessageBinding messageBinding, Message message, bool soap12) {
abbiamo un oggetto definito nel nostro namespace chiamato messaggio che sta causando il riferimento ambiguo in quanto questo file servizio web non è considerato pienamente il loro messaggio.
Come posso risolvere il problema senza rimuovere gli spazi dei nomi da web.config? Abbiamo i nostri servizi Web in un'altra cartella nella nostra directory virtuale, quindi ho provato ad aggiungere un web.config che ha cancellato i namespace ma non sembra funzionare.
Qualsiasi aiuto sarebbe apprezzato. Grazie Kevin
Si prega di vedere il mio commento che ho lasciato qui sotto. Avrei dovuto chiarire che WriteSoapMessage non è una funzione che ho scritto ma fa parte del framework .net. – Kevin