我们有一个 WPF 应用程序,它从 Analysis Services 多维数据集获取数据。客户端使用 ADOMD.NET 直接连接到数据库。
WPF 应用程序在现有的 Windows XP 计算机上运行良好。然而,Windows 7 会引发以下错误:
System.Reflection.TargetInvocationException: An exception occurred during the operation, making the result invalid. Check InnerException for exception details. ---> Microsoft.AnalysisServices.AdomdClient.AdomdConnectionException: The connection either timed out or was lost. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
我已将问题范围进一步缩小到如何使用 ADOMD.NET 检索数据。据我了解,有4种方法来检索数据。只有当我使用 CellSet 时才会出现此错误。
事实上,我可以使用相同的 MDX 语句,该语句会导致上述异常使用 XmlReader 返回数据。只有当我使用 CellSet 时才会引发异常。
有什么想法吗?
We have a WPF application which gets data from an Analysis Services Cube. The client connects directly to the database using ADOMD.NET.
The WPF application works fine on existing Windows XP machines. Windows 7 however throws the following error:
System.Reflection.TargetInvocationException: An exception occurred during the operation, making the result invalid. Check InnerException for exception details. ---> Microsoft.AnalysisServices.AdomdClient.AdomdConnectionException: The connection either timed out or was lost. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
I've narrowed the issue down further to be something around how the data is retrieved using ADOMD.NET. From what I understand, there 4 methods to retrieve data. It is only when I use a CellSet that this error occurs.
In fact, I can use the same MDX statement which causes the exception above to return data just fine using the XmlReader. It is only when I use the CellSet that the exception gets thrown.
Any ideas?
发布评论
评论(1)
事实证明,这是高级加密标准 (AES) 感知操作系统上的 Kerberos 中的一个错误。这意味着 Windows Vista+ 和 Windows Server 2008+。显然它已在 Windows 7 和 Windows Server 2008 R2 中修复。
在上面的场景中,我有 Windows 7 客户端连接到 Windows Server 2008,因此我们只需将修复应用到服务器。修复程序位于 KB969083 中。
如果您正在寻找更多详细信息,则需要进行大量搜索才能找到问题。知识库根本没有提到我上面的确切错误,显然,该错误是该错误表现出来的多种方式之一。
因此,如果您愿意,可以使用以下附加链接进一步阅读:
Turns out that this was a bug in Kerberos on Advanced Encryption Standard (AES) Aware Operating Systems. This means Windows Vista+ and Windows Server 2008+. Apparently it was fixed in Windows 7 and Windows Server 2008 R2.
In my scenario above I had Windows 7 clients connecting to Windows Server 2008 and so we needed to apply the fix to only the server. The fix is in KB969083.
If you are looking for more details, it took quite a bit of searching to find the issue. The KB doesn't mention my exact error above at all and apparently, that error is one of many ways in which the bug manifests itself.
So here's additional links for further reading if you wish: