2010-05-24 12 views
6

He creado un servicio web utilizando Visual Studio (2005 - Yo sé que soy de la vieja escuela) y todo se compila bien, pero cuando se abre me sale advertido así:Servicio web ASMX: "Este servicio web usa http://tempuri.org/ como su espacio de nombre predeterminado". mensaje - pero no debe ser

Este servicio web no cumple con WS-I Basic Profile v1.1.

Y además:

servicio Esta web está utilizando http://tempuri.org/ como espacio de nombres por defecto.

que estaría bien, excepto mi servicio comienza así:

[WebService(Namespace = "http://totally-not-default-uri.com/servicename")] 

Buscando la carpeta completa solución para "tempuri" no devuelve nada. No puedo encontrarlo mencionado en ninguna página de configuración accesible desde Visual Studio. Y, sin embargo, está justo allí en la lista wsdl: definitions para el atributo xmlns: tns en la página del descriptor del servicio web cuando lo veo a través del navegador y como targetNamespace en la misma etiqueta. Lo estoy viendo usando el modo "depuración" de Visual Studio con el servidor incorporado.

Parece que algo se ha guardado en caché en algún lugar, pero no sé qué ni dónde. He intentado detener y reiniciar el servidor, limpiar y reconstruir el servicio y revisar los archivos de configuración de texto con un editor de texto, pero no dados. ¿Alguna idea de lo que está pasando?

Respuesta

6

Ejem.

Después de un tiempo tratando de resolver esto, volví al principio y comencé a cuestionar mis suposiciones. Por lo general, en este tipo de situación, si nadie parece tener una respuesta, estoy haciendo algo realmente denso.

Efectivamente, tengo un par de clases en mi archivo de servicio web (porque es un apéndice para las pruebas y no se usarán a largo plazo) y tenía la clase incorrecta nombrada en mi archivo .asmx como código de soporte para el servicio web.

Una vez que corregí eso, todo funcionó bien.

No estoy orgulloso, es muy lejos de mi momento de mayor orgullo, pero voy a dejar esto en caso de que alguien más se encuentra con el mismo problema ...

+2

Creo que esto está bastante lejos de ser denso, todo lo contrario, en realidad. Le pasó a ... uh ... un amigo mío. +1 de mi parte –

2
  • 1 de mí también. Tuve el mismo problema pero una solución ligeramente diferente: mi problema era porque, como usted, tenía varias clases en el mismo archivo .asmx.cs. Tenía las clases de datos en la parte superior y la clase de servicio web debajo de ellas, y el atributo [WebService (Namespace = "...")] estaba en la parte superior del archivo, encima de las clases de datos.

me encontré con 2 soluciones: o bien mover las clases de datos a sus propios archivos de código (probablemente mejor), o si insiste en mantener múltiples clases en el mismo archivo, mover las clases de datos por debajo de la clase de servicio web, o mueva el atributo [WebService (Namespace = "...")] a JUSTO ANTES de la clase WebService.

Cuestiones relacionadas