2009-02-25 100 views
5

我需要部署一个web服务为我创造一个DotNetNuke的4.x的模块的一部分 - 但我不知道我该怎么做,知道它会永远留在同一个地方。我如何添加一个asmx文件到我的模块项目中,并且当我创建我的.DNN文件时,指定Web服务最终会在哪里?我想使用“〜/ webservices/webservice.asmx”格式从模块中的ascx文件中引用webservice。DotNetNuke的模块开发与web服务

确实DotNetNuke的有办法在.DNN文件,其中web服务最终会在网站上注明?如果是这样,我仍然可以使用〜/ myservice.asmx这样的根锚标签来引用它们吗?

回答

5

您可以通过在<files>部分中的元素包括ASMX文件:

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

一般情况下,你不需要指定的路径。

或者,你还可以给包Resources.zip文件,其中将包括比那些DNN需要在安装期间处理(例如组件和的SqlDataProvider文件)以外的任何文件。

这样做的好处是可维护性。使用Resources.zip可以避免不必编辑清单文件...

压缩文件的内容将被简单地解压到根模块目录(例如/ DesktopModules/YourModule/*)中。如果你的zip文件中有文件结构,它将被保留。

你要的元素添加TheNameOfYourFile.zip为了您的清单文件。

[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]

至于你的模块中引用它 - 我建议使用:

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

所以如果我不指定路径,将web服务住在〜/ DesktopModules/MyModule的/ MyService.asmx?或者将它放在〜/ MyService.asmx的nuke站点的根目录下? – 2009-02-25 20:41:04