- PR -

マネージドコントロール(ノータッチデプロイメント)の動作について

1
投稿者投稿内容
幸之助
会議室デビュー日: 2007/07/16
投稿数: 2
投稿日時: 2007-07-16 15:44
初めて投稿します。

これまで、アンマネージドC++で作成したActive-XモジュールをCAB配信によりIE上で利用するシステムを構築していましたが、新しいバージョンからクライアント側の環境を.NET(C#)前提へと移行する方針となりました。

色々調べたのですが、マネージドコントロールが現在の運用イメージに最も近いように思われたため、VS2005 + C# で作成したユーザコントロールにて以下のような環境・手順にて動作を確認しようとしたところ、うまく動作せず、原因がつかめないため、お知恵を拝借したい次第です。

【環境】
OS:Windwos XP Pro SP 2
開発環境:Visual Studio 2005
言語:C#
APサーバ:Apache on Win XP(開発環境上で動かしています)

【手順】
以下のサイトを参考にしました。
http://japan.internet.com/developer/20051220/25.html

1)Windowsコントロールライブラリのプロジェクトを作成し、プロジェクトのプロパティで「ビルド」タブの「COM相互運用機能の登録」にチェックを入れる

2)ボタンとラベルのみのユーザコントロールを作成し、ビルド。DLLが作成される。ユーザコントロールテストコンテナ上では動作することを確認

3)HTMLを作成し、Objectタグの指定でDLL名やネームスペースなどに誤りが無いことを確認。HTMLとDLLを同一フォルダに配置

4)ローカルホストは信頼済みサイトとして登録済みです。

5)クライアントからApache経由で該当のHTMLにアクセス。小さい画像を現すアイコンが表示されるだけで、モジュールは動作せず。

【確認したこと】
1)Apacheのログで、DLLはダウンロードされているように見える

2)以下のサイトを参考にIEにログを吐かせるようにしてみましたが、何も出力されません。
http://d.hatena.ne.jp/Kazzz/searchdiary?word=*%5BIE%5D

3)以下のサイトのアセンブリはIE上で動作しました。
http://ja.gotdotnet.com/quickstart/winforms/doc/WinFormsIeSourcing.aspx
また、このアセンブリをローカルのApacheからサービスするようにしても動作しました。この時、IEのログは出力されますので、上記の設定は効いている模様

4)C:\WINDOWS\assembly\Downloadを見ると、上述の動作したアセンブリはありますが、私が作成したテストしたアセンブリはありません。

確認結果3)4)から、私が作成したDLLに問題があるようにも思えるのですが、何が足りていないのかがわかりません。

ご教示頂ければ幸いです。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-07-16 17:42
引用:

1)Windowsコントロールライブラリのプロジェクトを作成し、プロジェクトのプロパティで「ビルド」タブの「COM相互運用機能の登録」にチェックを入れる



必要ありません。
マネージコントロールをマネージコントロールとして IE に貼る場合は不要です。

# これが原因ではないと思いますが一応。
幸之助
会議室デビュー日: 2007/07/16
投稿数: 2
投稿日時: 2007-07-18 15:59
渋木様

コメントありがとうございます。

ご指摘の部分は変更してみましたが、状況は変わりませんでした。

マネージドコントロールはセキュリティ面でも実運用上は厳しいので、違う形態の運用を検討します。

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)