2009-02-25 134 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