所以我有一个大问题。我需要调试自定义聚合,并且我能够构建和部署它,但是一旦它开始,它就不会允许以下内容:
File.Write
访问(无文字文件)EventLog
访问。Remote Debugging
访问。 SQL Server
的本地安装获取数据。我将数据存储在一个远程位置,而且我无法将其转储进行测试。如何在此方案中调试自定义聚合?尝试使用File.Write
或EventLog.WriteEvent
时,会引发安全访问异常。
有没有办法在每次聚合函数调用期间打印输出?我想知道在Merge()
,Terminate()
等等被抽取和转储的内容。
我有什么遗失的东西吗?感谢。
答案 0 :(得分:0)
鉴于这些困难的访问限制,我们能够提出解决方案。它并不完美,但它为我们提供了所需的输出。
我们的解决方案是创建一个StringBuilder
实例。
StringBuilder sb = new StringBuidlder();
并在需要调试时添加内容:
sb.Append("|Debug information");
最后,我们将StringBuilder
追加到收集结果中。而不是回到“测试”,我们会得到这样的东西:
"test|debug information|more debug information|more debug information."
然后我们将复制该信息,并将其用于调试。它并不完美,但我们能够通过分割它们来分离结果,并完成工作。