2009-02-25 14 views
5

Potrzebuję wdrożyć serwis internetowy w ramach tworzonego przeze mnie modułu DotNetNuke 4.x - ale nie jestem pewien, jak mogę to zrobić i wiem, że zawsze pozostanie w tym samym miejscu . Jak mogę dodać plik ASMX do mojego projektu modułu, a kiedy utworzę mój plik .DNN, określ gdzie skończy się usługa sieciowa? Chcę odwołać się do usługi internetowej z pliku ascx w module przy użyciu formatu "~/webservices/webservice.asmx".Rozwój modułu DotNetNuke za pomocą usług sieciowych

Czy DotNetNuke ma sposób określić w pliku .DNN, w którym serwisy internetowe znajdą się na stronie? A jeśli tak, to czy nadal będę mógł odwoływać się do nich za pomocą zakotwiczonych znaczników, takich jak ~/myservice.asmx?

Odpowiedz

5

Możesz dołączyć plik ASMX poprzez włączenie elementu w sekcji <files>:

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

Generalnie nie trzeba określić ścieżkę.

Można również dołączyć do pliku pakiet Resources.zip, który będzie zawierał pliki inne niż te, które DNN musi przetworzyć podczas instalacji (np. Pliki Assemblies i SqlDataProvider).

Zaletą tego jest łatwość konserwacji. Korzystanie z Resources.zip uniemożliwia edytowanie pliku manifestu w kółko ...

Zawartość pliku zip zostanie po prostu rozpakowana do katalogu głównego katalogu głównego (np./DesktopModules/YourModule/*). Jeśli w pliku zip znajduje się struktura plików, zostanie zachowana.

Będziesz chciał dodać TheNameOfYourFile.zip do pliku manifestu pod elementem.

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

chodzi o przedstawieniu go w module - Proponuję za pomocą:

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

więc jeśli nie określić ścieżkę, będzie żyć w WebService ~/DesktopModules/MyModule/MyService.asmx? czy może to umieścić w katalogu głównym witryny Nuke w ~/MyService.asmx? –

+0

Byłby on dostępny w "~/DesktopModules/MyModule/MyService.asmx", który może być uważany za "najwyższy poziom" dla plików modułu. (oprócz zestawu) –

+0

Zobacz także moją edycję dotyczącą sposobu uzyskania adresu URL pliku ze znaczników –

Powiązane problemy