SQL Server 分析サービスに対して MDX クエリを実行するコードをいくつか書きました。私の開発マシンでの単体テストは正常に動作しますが、TeamCity のインストールでも単体テストが実行され、分析サービスに接続しているものだけが次のような例外を示します。
Test method GetNumCompaniesPerIndustryTest threw exception:
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
これは、接続文字列が正しくないときに発生していたエラーです。奇妙なことに、TeamCity を搭載したサーバーにも VS 2010 がインストールされているため、/buildAgent/work フォルダーからソリューションを開いて単体テストを実行できます。すべてのテストは VS から正常に動作するため、接続の問題はないようです。接続文字列は、アプリケーション スコープの DLL 内の設定ファイルにあります。