想知道你们中是否有人对我遇到的以下问题有任何想法。
这是一些超级简单的插件代码。
namespace Demo.DebugTraceBlog
{
public class TraceAndDebugDemo : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
Trace.WriteLine("Started Plugin");
Trace.WriteLine("Plugin Working");
Trace.WriteLine("Ending Plugin");
}
}
}
我正在使用 DebugView (http://goo.gl/YRfus) 查看正在写入的 Trace 消息。当我将此代码作为在沙箱中运行的插件执行时,我得到了我期望的结果:DebugView 中出现三行,如果我将 VS 附加到沙箱工作进程,我会看到三行写入输出窗口。现在,当我将隔离模式更改为无,并让它在 W3WP.EXE 进程中运行时,我没有得到任何输出到 DebugView,当我附加到 W3WP.EXE 时,我可以设置一个断点来验证它是否正在运行,但我没有获取输出窗口的任何输出。
知道为什么会发生这种情况,以及我如何才能覆盖原因并强制非沙箱执行按预期工作。我可以猜测它与在 CRM IIS 进程内部运行有关,并且 CRM 正在抑制 Trace 写入——我专门使用 Trace 而不是 Debug 来试图避免这个问题,但没有运气。
我知道我可以使用 ITracingService 但这不符合我当前的要求。