2016-10-02 1 views
2

私は、サーバー移行タスクのいくつかの古いコンポーネントに対して、.netを使用してCOMコンポーネントを実装しています。Server.CreateObject +サーバーコンテキスト+ COM :-)

古いコンポーネントは、現在のサーバー上のイメージパスを受信し、jpegに変換し、変換されたイメージを同じパスに保存するために使用されました。

これはネットでは簡単ですが、私の主な問題はサーバーコンテキストを取得することです。私は、次のいずれかのいずれかを実行するかどうかはわからない:

  1. への必要性を回避原画像を
  2. や応答ストリームに直接画像を送信する(から取得されたのと同じパスに画像を保存します使用して保存した画像変換)

成分が、残念ながら、はい(クラスASPページ内で呼ばれている):!

Server.CreateObject("Component.Class") 

implemにとにかくあり私は、コンポーネントを作成したServerオブジェクトへの参照を得ることができます。サーバーへの参照を取得できれば、応答ストリームに書き戻すための適切なコンテキストを取得できることを期待していました。

答えて

1

私はこれを試して、インターネットとGoogleのためのいくつかの手がかりを得ました。誰かが同じ問題を抱えている場合に備えて、私はこれを投稿するべきだと思っていました。

  1. COMSVCLib(プロジェクトへの参照を追加するとき、すでにあなたのCOMセクションにする必要があります)
  2. ASPTypeLibrary:探し:「Microsoftはアクティブサーバーのコンテキストを取得

    は、以下の参考文献を含めの問題でしたサーバーページオブジェクトライブラリ "を参照してください。 COMセクションでこれがすぐに表示されない場合は、「Windowsのプログラムと機能」から追加する必要があります。次の機能追加します。 - > WWWサービス - インターネットインフォメーションサービス上では難しいことだったワークアウト> ASP

を:-)その後、そのサーバーおよびその他の固有のASPオブジェクト参照することは非常にシンプル:

COMSVCSLib.AppServer aspServer = new COMSVCSLib.AppServer(); 
COMSVCSLib.ObjectContext oc = aspServer.GetObjectContext(); 
ASPTypeLibrary.Server server = (ASPTypeLibrary.Server)oc["Server"]; 

他のASPオブジェクト(RequestやResponseなど)でも同じことができます。