- PR -

ASP.NETからC#で作成したDLLの呼び出し方について

1
投稿者投稿内容
ハギ
会議室デビュー日: 2003/12/26
投稿数: 6
投稿日時: 2006-09-12 23:10
お世話になっております。
ハギです。

ASP.NETからC#で作成したDLLを呼び出そうとしておりますが、
呼び出しに失敗してしまいます。。。

呼び出し方法と、環境は以下のとおり、となっております。

(呼び出し方法)
以下のように、作成したアセンブリを、Objectタグを用いて呼び出しております。

<object id="Test1" height="300" width="800" classid="439ec8d3-0b0b-46ba-96d2-59fb9903e3fb"></object>
(clsidには、このほかに、ネームスペース指定での記述も試みました)

(呼び出したいアセンブリの登録方法)
アセンブリ署名をVisualStudio.net2005の署名機能を利用して行ったアセンブリを、
ビルド後、Webサイトに参照するようにしました。

また、登録は、GACにも登録を行い、参照を試みましたが、
結果は参照をすることが出来ませんでした。

(環境)
・.NetFrameWorkのバージョンは2.0です。
・IISは6.0を利用しています。
・OSはWindowsXP SP2です。

何か、原因が分かる方はいないでしょうか
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-09-12 23:54
引用:

(呼び出したいアセンブリの登録方法)
アセンブリ署名をVisualStudio.net2005の署名機能を利用して行ったアセンブリを、
ビルド後、Webサイトに参照するようにしました。


ん〜、サーバー側オブジェクトタグ構文を使いたいという事でしょうか?
やった事ないのでなんとも言えませんが、そんな事しないで普通に参照した方が良くないですか?

とりあえず以下のようにしてみて下さい。
http://msdn2.microsoft.com/ja-JP/library/h8k45y06.aspx
ただ、かなり一般的ではないと思いますが。
_________________
囚人のジレンマな日々
ハギ
会議室デビュー日: 2003/12/26
投稿数: 6
投稿日時: 2006-09-13 09:55
返信ありがとうございます。

情報の後だしで、大変申し訳ないのですが、ASPからローディングされているDLLは、System.Windows.Formsを用いて実装されております。
ASPからDLLをローディング後、DLLのフォームが表示され、
フォーム内のボタンクリックすると、DLLの内部から、クライアント側に配置してあるexeが実行されます。

Windows.Formsを表示するために、オブジェクトタグを利用しております。

説明不足で、大変申し訳ありません。

セキュリティの設定は、現在、イントラネットに関しましては、完全な信頼を行うように、.NET構成ツールのゾーンセキュリテ

ィで設定しておりますので、セキュリティの問題ではないと思われます。
(テスト環境のため、localhostで実行しております。)
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2006-09-13 11:46
引用:

(呼び出し方法)
以下のように、作成したアセンブリを、Objectタグを用いて呼び出しております。

<object id="Test1" height="300" width="800" classid="439ec8d3-0b0b-46ba-96d2-59fb9903e3fb"></object>
(clsidには、このほかに、ネームスペース指定での記述も試みました)



その書式は ActiveX コントロールを使用する場合の書式ではありませんか?
(厳密名が clsid として流用可能なんでしたっけ?)

C# や VB.NET の「クラスライブラリプロジェクト」から普通に作った .dll は、そのままでは ActiveX コントロールとして利用できません。
その辺の事情は理解されているでしょうか?

引用:

(呼び出したいアセンブリの登録方法)
アセンブリ署名をVisualStudio.net2005の署名機能を利用して行ったアセンブリを、
ビルド後、Webサイトに参照するようにしました。

また、登録は、GACにも登録を行い、参照を試みましたが、
結果は参照をすることが出来ませんでした。



「どこ」で登録を行ったのでしょうか?
object タグが解釈・実行されるのはクライアントです。

なので、ActiveX コントロールだろうが .NET アセンブリだろうが、クライアントに配布・登録する必要があります。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2006-09-13 12:27
この辺の話かと思いますが…
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4164&forum=7&18
試してないので詳細は分かりません。

結局NTDと同じような動きだったはずなので、DLLも普通にクライアントから
ダウンロードできる場所にないといけないはずだと思うんですけど、
試してない&調べてないので具体的には知りません、あしからず。
1

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