わかりました、問題は解決しました。すこし。この問題は埋め込み画像に限らず、レポート サービス ビューアーを使用していないために発生します。
要約すると:
1) Web アプリケーションがレポート サーバーを呼び出すとき、それは完全に承認されています。Web アプリケーション アカウント (つまり、アプリを実行するサービス アカウント) のみが使用できる SessionID が生成されます。
2) Web アプリは RAW HTML4.0 を画面に出力します。
3) ブラウザは HTML を受け取り、HTML で参照されている画像を取得しようとします。
4) ブラウザーがユーザー アカウントとして実行されている (例: domain\username1)
5) レポート サーバーは次のような要求を受け取ります。
6) URL にリストされている SessionID が domain\username1 に関連付けられていないため、レポート サーバーはそれが存在しないと主張します。
domain\username1 アカウントを使用するようにアプリ ドメインを設定すると、SessionID がたまたまアカウントに関連付けられるため、突然「機能」します。しかし、実際のユーザーがシステムを試すとすぐに、ドメイン\ユーザー名N がアプリ プール アカウントと一致しないため、イメージが見つからないと文句を言います。
この問題の解決策は次のとおりです。
1) Report Viewer コントロールを使用します。これにより、ブラウザーが受信した URL が Web アプリを指すようになり、Web アプリの ID を使用してレポート サーバーから URL を取得できるようになります。
2) Web アプリのコードで、Render 呼び出しから返された HTML4.0 を解析し、すべての画像を取得してキャッシュし、Web アプリによって保存されたキャッシュされた画像を指すように HTML4.0 リンクを書き直してから、ブラウザーに送信します (これが複雑に思われる場合は、シナリオを機能させるため、Report Viewer コントロールを使用します)。
3) MHTML 出力形式の使用を試みることができます。これにより、バイナリ ストリーム以降に画像が埋め込まれた完全に修飾されたレポートが生成されます。この結果、アプリケーション ページ内に埋め込むのは難しくなりますが、克服できないわけではありません。
レポート ビューアーを使用したくないため、2) のバリエーションを使用することにしました。表示しようとしているロゴは、呼び出し元の Web アプリで既にホストされているため、SSRS レポート実行サービスから返された応答の img タグの src 属性を、この場所への URL に置き換えるだけです。
この問題の最善の解決策として提案されているように、レポート ビューアーを使用したくありません。SSRS がセッション情報を使用して、すべてのレポートに表示されるロゴのような単純なものを返さなければならない理由は、私には理解できません....この問題の根底にたどり着くのに何年もかかりましたが、解決策は特にきれいではありません... .