gpt4 book ai didi

c# - 从 Dynamics CRM 2011 插件调用 System.Diagnostics.Trace

转载 作者:太空狗 更新时间:2023-10-29 20:36:59 25 4
gpt4 key购买 nike

想知道你们是否对我遇到的以下问题有任何想法。

这是一些 super 简单的插件代码。

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 但这不符合我当前的要求。

最佳答案

(猜测)将此添加到您的配置文件中。如果它有效,那么您的问题是 .NET 跟踪在另一个应用程序域上时的默认监听器存在一些问题。

D:\Log\MyApp\Program 更改为 ASP.NET 具有完全访问权限的路径。

...
<system.diagnostics>
<switches>
...
</switches>
<sources>
...
</sources>
<trace autoflush="true">
<listeners>
<clear />
<add name="defaultListener" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"
Append="true"
AutoFlush="true"
BaseFileName="program"
CustomLocation="D:\Log\MyApp\Program"
DiskSpaceExhaustedBehavior="DiscardMessages"
Encoding="Unicode"
IncludeHostName="false"
LogFileCreationSchedule="Daily"
location="Custom"
MaxFileSize="900000000000" />
<add name="programConsoleListener" type="System.Diagnostics.ConsoleTraceListener" />
</listeners>
</trace>
</system.diagnostics>
...

关于c# - 从 Dynamics CRM 2011 插件调用 System.Diagnostics.Trace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14183791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com