2009-02-25 9 views
5

Necesito implementar un servicio web como parte de un módulo DotNetNuke 4.x que estoy creando, pero no estoy seguro de cómo puedo hacerlo y sé que siempre permanecerá en el mismo lugar . ¿Cómo puedo agregar un archivo asmx a mi proyecto de módulo, y cuando creo mi archivo .DNN, especifico dónde terminará el servicio web? Quiero hacer referencia al servicio web desde dentro del archivo ascx en el módulo utilizando el formato "~/webservices/webservice.asmx".Desarrollo de módulos DotNetNuke con servicios web

¿DotNetNuke tiene una forma de especificar en el archivo .DNN dónde terminarán los servicios web en el sitio? Y si es así, ¿podré hacer referencia a ellos con etiquetas ancladas como ~/myservice.asmx?

Respuesta

5

Puede incluir el archivo ASMX mediante la inclusión de un elemento de la sección <files>:

<files> 
<file> 
    <name>YourWebService.asmx</name> 
    <path></path> 
</file> 
</files> 

En general, no es necesario especificar una ruta.

Como alternativa, puede incluir un archivo Resources.zip con su paquete que incluirá todos los archivos que no sean los que DNN debe procesar durante la instalación (por ejemplo, ensamblados y archivos SqlDataProvider).

El beneficio de esto es la facilidad de mantenimiento. El uso de Resources.zip evitará tener que editar el archivo de manifiesto una y otra vez ...

El contenido del archivo zip simplemente se desempaquetará en el directorio del módulo raíz (por ejemplo,/DesktopModules/YourModule/*). Si hay una estructura de archivo dentro de su archivo zip, se mantendrá.

Deberá agregar TheNameOfYourFile.zip a su archivo de manifiesto bajo el elemento.

[snip]

<folder> 
    <name>Your Module</name> 
    <friendlyname>Your Module</friendlyname> 
    <foldername>YourModule</foldername> 
    <modulename>YourModule</modulename> 
    <description>A module for DotNetNuke websites.</description> 
    <version>01.00.00</version> 
    <resourcefile>Resources.zip</resourcefile> 
    <businesscontrollerclass></businesscontrollerclass> 
    <modules> 
    <module> 

[/snip]

En cuanto a la referencia a ella en su módulo - se sugiere emplear:

<%=ResolveUrl("~/DesktopModules/YourModule/Services.asmx")%> 
+0

por lo que si no se especifica una ruta, vivirá en el servicio web ~/DesktopModules/MyModule/MyService.asmx? ¿O eso lo pondría en la raíz del sitio nuclear en ~/MyService.asmx? –

+0

Viviría en "~/DesktopModules/MyModule/MyService.asmx" que se puede considerar como el "nivel superior" para los archivos del módulo. (aparte del ensamblado) –

+0

Además, vea mi edición sobre cómo obtener la URL del archivo del marcado –