- - PR -
ASP.NETからC#で作成したDLLの呼び出し方について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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です。 何か、原因が分かる方はいないでしょうか | ||||||||
|
投稿日時: 2006-09-12 23:54
ん〜、サーバー側オブジェクトタグ構文を使いたいという事でしょうか? やった事ないのでなんとも言えませんが、そんな事しないで普通に参照した方が良くないですか? とりあえず以下のようにしてみて下さい。 http://msdn2.microsoft.com/ja-JP/library/h8k45y06.aspx ただ、かなり一般的ではないと思いますが。 _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2006-09-13 09:55
返信ありがとうございます。
情報の後だしで、大変申し訳ないのですが、ASPからローディングされているDLLは、System.Windows.Formsを用いて実装されております。 ASPからDLLをローディング後、DLLのフォームが表示され、 フォーム内のボタンクリックすると、DLLの内部から、クライアント側に配置してあるexeが実行されます。 Windows.Formsを表示するために、オブジェクトタグを利用しております。 説明不足で、大変申し訳ありません。 セキュリティの設定は、現在、イントラネットに関しましては、完全な信頼を行うように、.NET構成ツールのゾーンセキュリテ ィで設定しておりますので、セキュリティの問題ではないと思われます。 (テスト環境のため、localhostで実行しております。) | ||||||||
|
投稿日時: 2006-09-13 11:46
その書式は ActiveX コントロールを使用する場合の書式ではありませんか? (厳密名が clsid として流用可能なんでしたっけ?) C# や VB.NET の「クラスライブラリプロジェクト」から普通に作った .dll は、そのままでは ActiveX コントロールとして利用できません。 その辺の事情は理解されているでしょうか?
「どこ」で登録を行ったのでしょうか? object タグが解釈・実行されるのはクライアントです。 なので、ActiveX コントロールだろうが .NET アセンブリだろうが、クライアントに配布・登録する必要があります。 | ||||||||
|
投稿日時: 2006-09-13 12:27
この辺の話かと思いますが…
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=4164&forum=7&18 試してないので詳細は分かりません。 結局NTDと同じような動きだったはずなので、DLLも普通にクライアントから ダウンロードできる場所にないといけないはずだと思うんですけど、 試してない&調べてないので具体的には知りません、あしからず。 |
1