用户登录到Tridion时无法显示输出

用户登录到Tridion时无法显示输出,tridion,tridion-2011,Tridion,Tridion 2011,可能重复: 我在librarydll类中编写了下面的代码,并在配置文件od Tridion中添加了程序集引用,但我无法获得任何显示user.Id的窗口或警报,并且它没有给出任何错误 [TcmExtensionMyevent] 公共类GetInfo:TcmExtension { 看起来您可能混淆了事件系统和GUI扩展。订阅和事件处理程序的第一行代码是事件系统的一部分,实际上只能写入某种日志机制。您试图实现什么 当您在CMS服务器上使用Visual Studio在debug中运行代码时,您的代码是

可能重复:

我在librarydll类中编写了下面的代码,并在配置文件od Tridion中添加了程序集引用,但我无法获得任何显示user.Id的窗口或警报,并且它没有给出任何错误

[TcmExtensionMyevent] 公共类GetInfo:TcmExtension {


看起来您可能混淆了事件系统和GUI扩展。订阅和事件处理程序的第一行代码是事件系统的一部分,实际上只能写入某种日志机制。您试图实现什么


当您在CMS服务器上使用Visual Studio在debug中运行代码时,您的代码是否执行命中任何断点?您的问题是MessageBox没有显示,还是代码根本没有运行。

正如我在对的回答中提到的,您不能使用MessageBox或console.writes在SDL Tridio中查看来自事件系统的信息n、 您必须恢复到Tridion事件日志记录或调试事件系统

如前所述,远程调试是可能的,但我通常会发现,如果您没有被dev计算机和CMS之间的防火墙阻止,则安装会很麻烦。因此,通常我只需恢复到仅在dev CMS服务器上安装Visual Studio,并通过附加到dllhost.exe进程直接从那里调试事件系统DLL请参阅本文中的更多详细信息

正如我在对的回答中提到的,我仍然不相信您可以在事件系统中实现您的要求。您可能需要查看UI扩展或完全不同的内容来记录用户的活动登录。从技术上讲,您永远不会登录SDL Tridion UI,因为您的密码是由IIS验证的,而不是由SDL Tridion web应用程序


注:如果你想提供更多信息,最好编辑你的问题,打开一个重复的问题从来都不是一个好主意。

@Chris…代码正在运行,但消息框和控制台都没有执行,而且我无法调试它,因为这是一个在后台进程中运行的dllEvent系统代码,你看不到任何内容是正常的。请尝试w正在写入一个文件。Nuno..我尝试了,但拒绝访问,无法在那里写入文件。我可以通过任何方式检查我是否能够在登录时获取用户id吗?您应该能够调试DLL,我一直在调试SDL Tridion的事件系统。可以设置远程调试,但如果您在DEV CMS服务上安装了VS,这是最简单的呃。如果你不在调试中,你怎么知道你的代码正在运行?请解释你的业务需求是什么,因为我很确定你的最终目标不是创建一个弹出窗口,告诉用户他们的ID是什么。我的开发服务器不同于安装VS的系统。实际上,我有另一个应用程序,它使用核心服务进行交互所以当我开始调试时,我得到了一个错误,创建文件到那个位置被拒绝,这是事件处理程序错误的原因,然后我知道虽然我的事件处理程序代码正在执行,但它不会产生任何输出。
public GetInfo()
{
    EventSystem.Subscribe<User, LoadEventArgs>(OnUserLoad, EventPhases.TransactionCommitted);
}

private void OnUserLoad(User user, LoadEventArgs eventArgs, EventPhases phase)
{



    MessageBox.Show(user.Id);
    Console.WriteLine(user.Id);
}