调试DotNetNuke模块

时间:2009-03-16 15:07:19

标签: dotnetnuke dotnetnuke-module dotnetnuke-imc

DotNetNuke 4.8模块间通信开发的最佳VS解决方案设置是什么?

我目前在我的DotNetNuke模块中有一个包含多个Web应用程序项目的解决方案 - 并且在每个模块中都有包含控件的页面作为测试工具。这一切都很好,直到我需要模块开始使用IModuleCommunicator和IModuleListener开始交谈 - 但现在我正在进行模块间通信,调试将不再以这种方式运行。

我很好奇其他人如何处理这个问题 - 有没有办法让你的测试页面模拟一个Nuke环境?你在核武网站上测试过吗?我的解决方案是使用VSS进行源代码控制,所以我不想在我的解决方案中添加完整的nuke网站作为项目,因为这会迫使我将其添加到源代码控制中 - 而我宁愿没有完整的核心站点源控制。

我已经能够通过附加到本地IIS工作进程进行调试,但这有点痛苦。有没有人对如何减轻调试模块间通信的痛苦有任何建议?

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:2)

我们倾向于在开发DotNetNuke站点中进行测试,通常只是附加到IIS工作进程进行调试(因为它比使用F5重建更快)。

我认为,一般来说,您使用DNN提供的内容越多,您就越不能在DNN环境之外进行测试。由于IMC是一个特定的DNN流程,因此在让DNN成为执行流程的过程之前,您无法进行完整的测试。

答案 1 :(得分:2)

经过大量试用和错误,这是我最终得到的 - 似乎运作良好。

  1. 在模块项目上创建了一个Post-build事件,以复制到本地nuke站点进行调试。在“Properties / Build Events / Post-build event command line”下找到... copy $(TargetDir)$(TargetName)。* C:\ Inetpub \ wwwroot \ bin * / y
  2. 默认情况下,更改了网站设置以启动localhost网站。在“属性/ Web /服务器/使用自定义Web服务器”下找到 - 更改为“http://localhost/
  3. 在支持类库项目上创建了构建后事件,以便将文件复制到本地Web服务器。也可以刚刚更改模块项目上的post-build事件以包含其他文件。
  4. 完成这些设置后,按F5运行项目将启动浏览器并自动附加到IIS工作进程。

    另外,请记住,如果您在使用UAC(Vista,win 2008,win 7)的计算机上运行此操作,则必须以管理员身份运行VS,因为将副本复制到wwwroot并附加到工作进程要求提升特权。