レポート ビルダーでレポート マネージャーに配置してあるデータ ソースを参照したときにデータ ソース クエリを参照できないエラーの対処法

はまったので簡単にメモします。

【環境】

■クライアントPC

  • レポート ビルダー 3.0

■サーバーPC

  • Reporting Services (SQL Server 2008 R2)
  • 参照するテーブル、またはキューブ
  • 上記のデータ ソース配置

 

【原因と対処法】

レポート ビルダーを使うクライアントからサーバーにあるデータ ソースを参照し、クエリデザインを開こうとしたときに認証エラーになる場合があります。

【エラー例】

  • ログオン失敗: ユーザー名を認識できないか、またはパスワードが間違っています。
  • 対象のコンピュータによって拒否されたため、接続できませんでした。

逆にサーバー内で直接レポート ビルダーで編集するときや、レポート マネージャーから(サーバー、クライアントからアクセスどちらでも)データ ソースの接続テストを行った場合には問題ない場合があります。

これのよくある原因としては、データソースのホスト名指定に「localhost」を指定している場合に発生します。

サーバー上で編集している場合は自分自身(localhost)にデータソースが存在するのでエラーが発生しません。クライアントからレポート マネージャーを開いてデータソースの接続テストを行った場合にも、実際にプロセスが動いているのはサーバーなのでこちらもエラーになりません。

レポート ビルダーからサーバーのデータソースを参照した場合は、データソース自体はサーバーにあるのですが、そのデータソースを使って実行するプロセスはクライアントになるため、localhost はクライアントPCを指すことになり、データ ソース(テーブルなど)が存在しないため、エラーになることがあります。

ですので、レポート マネージャーに配置するデータ ソースが参照するホスト名は localhost にはせず、必ずサーバー名、または IP アドレスを明示的に指定する必要があります。

]]>

ホスト名にアンダーバー(_)を含むサイトに Internet Explorer でアクセスすると Cookie が保存されない

完全に盲点な仕様でした。ASP.NET で Web サイトを構築していたのですが、なぜかホスト名でアクセスするとセッションに保存していたデータが消失してしまうという謎の原因が発生し、解決の糸口が見つからなかったので MSDN フォーラムで質問していました。

ホスト名にアンダーバーをいれた場合、Cookie が保存されないのは IE だけの仕様なんですね(IE 6~9 で確認)。ほかのブラウザでは問題なく Cookie は保存されるようでした。

検索してみると結構出てくるみたいです。

ひさびさに大ハマリしてしまいました orz

]]>