Разработка модуля DotNetNuke с веб-сервисами - PullRequest
5 голосов
/ 25 февраля 2009

Мне нужно развернуть веб-сервис как часть создаваемого мной модуля DotNetNuke 4.x - но я не уверен, как мне это сделать, и знаю, что он всегда будет оставаться на одном месте. Как я могу добавить файл asmx в мой проект модуля, и когда я создаю свой файл .DNN, укажите, где будет находиться веб-сервис? Я хочу сослаться на веб-сервис изнутри файла ascx в модуле, используя формат "~ ​​/ webservices / webservice.asmx".

Есть ли у DotNetNuke способ указать в файле .DNN, где веб-сервисы окажутся на сайте? И если да, смогу ли я ссылаться на них с помощью корневых тегов, таких как ~ / myservice.asmx?

1 Ответ

5 голосов
/ 25 февраля 2009

Вы можете включить файл ASMX, включив элемент в раздел <files>:

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

Как правило, вам не нужно указывать путь.

В качестве альтернативы, вы можете включить файл Resources.zip в свой пакет, который будет включать любые файлы, кроме тех, которые DNN должен обрабатывать во время установки (например, файлы сборок и SqlDataProvider).

Преимуществом этого является ремонтопригодность. Использование Resources.zip избавит вас от необходимости редактировать файл манифеста снова и снова ...

Содержимое 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")%>
...