SQL Server Profiler - 无法加载 pfclnt.dll

Posted

技术标签:

【中文标题】SQL Server Profiler - 无法加载 pfclnt.dll【英文标题】:SQL Server Profiler - Could not load pfclnt.dll 【发布时间】:2014-07-15 10:16:00 【问题描述】:

首先,我是一名 .NET 程序员新手,我一直在尝试使用自定义 SQL Profiler 跟踪器解决问题,就像这里描述的那样 - http://www.codeproject.com/Articles/20173/MS-SQL-Server-Profiler-with-NET

所以,我使用 TraceServer(http://technet.microsoft.com/en-us/library/Microsoft.SqlServer.Management.Trace.TraceServer.aspx) 类来 InitializeAsReader 并立即抛出一个

"Failed to initialize object as reader."

带有 InnerException -

"Could not load file or assembly 'file:///c:\\Program Files (x86)\\Microsoft SQL Server\\100\\Tools\\Binn\\pfclnt.dll' or one of its dependencies. The system cannot find the file specified.""

有趣的是,只有当我尝试连接到 SQL Profiler 2012 并且我在 2008R2 上没有遇到问题时才会发生这种情况。我还注意到 pfclnt.dll 存在于“C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn”中,而不是在跟踪中提到的文件夹中。

有没有办法让它从正确的位置加载它?为什么它一开始就看错了位置?

【问题讨论】:

【参考方案1】:

好的,我意识到我的项目引用了 SQL Server 2008 程序集,尤其是这个 - C:\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfoExtended.dll。我删除了这些引用并添加了对 C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies 中存在的 2012 库的引用,现在一切正常!

这个问题 - SQL Server file names vs versions 帮助我理解了 SQL Server 用来分隔版本的奇怪文件夹名称。

【讨论】:

以上是关于SQL Server Profiler - 无法加载 pfclnt.dll的主要内容,如果未能解决你的问题,请参考以下文章

如何正确读取和解释 SQL Server Profiler 中显示的数据 - 持续时间告诉我啥?

sql server 2012 profiler打开2016的profiler

sql server profiler 是啥文件

如何在sql server 2008客户端安装sql profiler

如何创建跟踪 (SQL Server Profiler)

工具:sql server profiler(分析器)