2009-02-25 14 views
5

私が作成しているDotNetNuke 4.xモジュールの一部としてwebserviceを展開する必要がありますが、どうすればそれを行うことができ、いつも同じ場所に留まることがわかります。モジュールプロジェクトにasmxファイルを追加するにはどうしたらいいですか?.DNNファイルを作成すると、Webサービスがどこに終わるかを指定できますか? "〜/ webservices/webservice.asmx"形式を使用して、モジュール内のascxファイル内からWebサービスを参照したいと考えています。Webサービスを使ったDotNetNukeモジュール開発

DotNetNukeは、Webサービスがサイト上でどこに終わるかを.DNNファイルで指定できますか?もしそうなら、〜/ myservice.asmxのようなルートアンカータグでそれらを参照することはできますか?

答えて

5

あなたは<files>セクションの要素を含むことにより、ASMXファイルを含めることができます。

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

は一般的に、パスを指定する必要はありません。

また、インストール時にDNNが処理する必要があるファイル以外のファイル(AssembliesやSqlDataProviderファイルなど)を含むパッケージにResources.zipファイルを含めることもできます。

この利点は保守性です。 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")%> 
+0

ので、私はパスを指定しない場合、Webサービスはに住んでます〜/ DesktopModules/MyModule/MyService.asmx?またはそれは〜/ MyService.asmxの核サイトのルートに置くでしょうか? –

+0

"〜/ DesktopModules/MyModule/MyService.asmx"は、モジュールのファイルの "トップレベル"と考えることができます。 (アセンブリとは別に) –

+0

また、マークアップからファイルのURLを取得する方法に関する私の編集を参照してください –

関連する問題