2009-02-25 25 views
5

Tôi cần triển khai một dịch vụ web như một phần của mô-đun DotNetNuke 4.x mà tôi đang tạo - nhưng tôi không chắc chắn cách tôi có thể làm điều đó và biết rằng nó sẽ luôn ở cùng một nơi . Làm thế nào tôi có thể thêm một tập tin asmx vào dự án mô-đun của tôi, và khi tôi tạo tập tin .DNN của tôi chỉ định nơi webservice sẽ kết thúc? Tôi muốn tham khảo webservice từ bên trong tệp ascx trong mô-đun bằng cách sử dụng định dạng "~/webservices/webservice.asmx".Phát triển mô-đun DotNetNuke với webservices

DotNetNuke có cách để chỉ định trong tệp .DNN nơi các dịch vụ web sẽ kết thúc trên trang web không? Và nếu có, tôi vẫn có thể tham khảo chúng với các thẻ được neo gốc như ~/myservice.asmx?

Trả lời

5

Bạn có thể bao gồm các tập tin ASMX bằng cách bao gồm một yếu tố trong phần <files>:

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

Nói chung, bạn không cần phải xác định một con đường. Ngoài ra, bạn có thể bao gồm tệp Resources.zip với gói của bạn sẽ bao gồm bất kỳ tệp nào khác ngoài các tệp mà DNN cần xử lý trong quá trình cài đặt (ví dụ: tệp Assemblies và SqlDataProvider).

Lợi ích của việc này là khả năng bảo trì. Sử dụng Resources.zip sẽ giúp bạn không phải chỉnh sửa tệp kê khai nhiều lần ...

Nội dung của tệp zip sẽ được giải nén đơn giản vào thư mục mô-đun gốc (ví dụ:/DesktopModules/YourModule/*). Nếu có cấu trúc tệp trong tệp zip của bạn, nó sẽ được duy trì.

Bạn sẽ muốn thêm TheNameOfYourFile.zip vào tệp kê khai của bạn trong phần tử.

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

Đối với tham khảo nó trong module của bạn - Tôi đề nghị sử dụng:

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

vì vậy nếu tôi không chỉ định một con đường, webservice sẽ sống ở ~/DesktopModules/MyModule/MyService.asmx? hoặc sẽ đặt nó ở gốc của trang nuke tại ~/MyService.asmx? –

+0

Nó sẽ tồn tại ở "~/DesktopModules/MyModule/MyService.asmx" có thể được coi là "cấp cao nhất" cho các tệp của mô-đun. (ngoài hội đồng) –

+0

Ngoài ra, hãy xem chỉnh sửa của tôi về cách lấy URL của tệp từ đánh dấu –

Các vấn đề liên quan