首先,我是一名新手.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”中,而不是在跟踪中提到的文件夹中。
有没有办法可以让它从正确的位置加载它?为什么它首先看错了位置?
答案 0 :(得分: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服务器用来分隔版本的奇怪文件夹名称。