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