【问题标题】:Debugging feature activation in SharePoint 2007SharePoint 2007 中的调试功能激活
【发布时间】:2010-06-15 18:31:53
【问题描述】:

我有一个在“网站集功能”下激活的 SharePoint 功能,但在激活时出现了一些问题。我已经通过 stsadm 和 SharePoint UI 激活了它,但均未成功。该功能从停用切换到启用,但应该有的结果却没有。结果是应该创建一些页面。所以我的问题是,有没有人知道逐步激活功能过程的方法?我希望能够将 Visual Studio 2008 附加到浏览器并逐步执行我设置的几个断点。

我已将错误范围缩小到FeatureReceiverFeatureActivated(SPFeatureReceivrProperties properties)

我一直在参考的页面:

http://msdn.microsoft.com/en-us/library/ee231550.aspx http://blogs.msdn.com/b/sharepoint/archive/2007/04/10/debugger-feature-for-sharepoint.aspx

编辑:通过查看在 12 hive 下的 Logs 文件夹中创建的错误解决了该解决方案,从导入 Web 部件的第一个错误开始,并引用 http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/10/06/troubleshooting-cannot-import-web-part-error.aspx

通过添加两个缺失的二进制文件解决了该问题。我无法通过附加到 w3wp 和 SP 计时器服务进程来附加到 SharePoint 功能激活。

谢谢大家的提示!

【问题讨论】:

  • 如果您有答案,请将其作为答案发布并接受,以便其他遇到相同问题的用户知道他们在这里有答案。
  • 我没有问题的答案,因为我无法调试功能激活。

标签: c# visual-studio-2008 sharepoint debugging sharepoint-2007


【解决方案1】:

您可以尝试这样做(假设 Visual Studio 与 SharePoint 服务器本身安装在同一台计算机上)。

  • FeatureActivated(SPFeatureReceivrProperties properties) 方法上放置一个断点。
  • 附加 Visual Studio(调试菜单 -> 附加到进程)并查找 SharePoint 计时器服务(我现在不知道它的名称)
  • 立即尝试激活您的功能。

如果我记得,计时器进程负责触发各种任务,例如功能激活,因此希望附加到该进程是正确的。

希望上述方法可行,假设您使用的是 DEBUG 构建的代码,您应该能够调试您的代码。

希望这会有所帮助。

【讨论】:

  • 您需要附加到的进程的名称是 w3wp.exe。确保选中“显示所有用户的所有进程”。可能有多个实例(最简单的方法就是附加到所有列出的 w3wp.exe 进程)。
  • SharePoint 计时器服务是 OWSTIMER.exe,在通过网站集功能激活该功能时,附加到该服务似乎没有命中 FeatureActivated 方法。
  • @Eric U. - 好吧,也许@Kit 有正确的想法,改为附加到w3wp.exe。它必须是这些 .EXE 之一,我自己已经有一段时间没有这样做了。
  • 啊,刚刚发现这个:stackoverflow.com/questions/2581193/… 可能有用吗?看起来@Ben Robinson 走在了正确的轨道上。
【解决方案2】:

您会发现使用SPVisuaDev 更容易做到这一点,它是一个 VS 插件,您可以在菜单中选择激活(带调试),您甚至不需要使用 stsadm 来部署或激活您的功能在您的开发环境中。它还与 WSPBuilder 集成,这使得构建和部署 WSP 包变得更加容易。

【讨论】:

    【解决方案3】:

    如果您从浏览器执行此操作,我很确定功能激活将在 w3wp 中发生,如果您从 stsadm 执行此操作,则在 stsadm 中执行此操作。 Powershell 以 2010 的 powershell 为例。计时器服务不参与这些类型的配置任务。它们都是同步的。

    【讨论】:

    • 不,附加到 w3wp 不会触发 FeatureActivated 方法上的断点。
    • 您是否检查过 ULS 日志(程序文件\常用文件\microsoft shared\web server extensions\[12/14]\logs)以查看是否有任何关于功能激活的信息?您是否 100% 确定功能接收器实际上正在运行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2011-02-03
    • 2012-05-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多