C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[9]: IEで.NETアプリケーションをホストする


(過去ログ 91 を表示中)

[トピック内 11 記事 (1 - 11 表示)]  << 0 >>

■54212 / inTopicNo.1)  IEで.NETアプリケーションをホストする
  
□投稿者/ 田中ソフィア (3回)-(2010/10/09(Sat) 21:01:53)

分類:[C#] 

環境:Visual Studio 2008 C#
.NET Framworkインストール済み
IE7
Apache Tomcat 6

お世話になっております。田中ソフィアと申します。

.NETで作成したフォームコントロールライブラリをIEで実行しようと考えております。
しかし下記、UserControl1.csをビルドしてできたDLLとhtmlを
(省略)\Tomcat 6.0\webapps\ROOT
下に配置し、http://(IPアドレス:ポート番号)/index_dialog.html
にアクセスしても「失敗」表示がされ、実行できません。
ボタンを押下しても
「'document.getElementByID(...)'はNullまたはオブジェクトではありません。」
となります。

なお、http://(IPアドレス:ポート番号)/WindowsFormsControlLibrary3.dll
にアクセスするとダウンロードできます。

原因がわからず、困っています。
なにかアドバイスがありましたらご教示頂ければ幸いです。

恐れ入りますが、よろしくお願いいたします。


【UserControl1.cs】
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsControlLibrary3
{
public partial class UserControl1 : UserControl
{
public UserControl1()
{
InitializeComponent();
}

public void ShowDialogTest()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Multiselect = true;

dialog.ShowDialog();
}
}
}

【index.html】
<html>
<body>
<object id="WindowsFormsControlLibrary3"
classid="http://WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
height="100" width="100">
失敗
</object>

<script language="JavaScript">
function DialogTest()
{
document.getElementById("WindowsFormsControlLibrary3").ShowDialogTest();
}
</script>

<input type="button" value="ダイアログ" onClick="DialogTest()"><br>
</body>
</html>


引用返信 編集キー/
■54213 / inTopicNo.2)  Re[1]: IEで.NETアプリケーションをホストする
□投稿者/ Azulean (618回)-(2010/10/09(Sat) 21:34:30)
No54212 (田中ソフィア さん) に返信
>     <object id="WindowsFormsControlLibrary3"
>     classid="http://WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
>     height="100" width="100">

試してないのですが、http://WindowsFormsControlLibrary3.dll は URL を間違えているのでは?
ホスト名(IP アドレス)がないので。。。

引用返信 編集キー/
■54215 / inTopicNo.3)  Re[2]: IEで.NETアプリケーションをホストする
□投稿者/ 田中ソフィア (4回)-(2010/10/09(Sat) 23:10:18)
ご回答ありがとうございます。

>> <object id="WindowsFormsControlLibrary3"
>> classid="http://WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
>> height="100" width="100">
>
> 試してないのですが、http://WindowsFormsControlLibrary3.dll は URL を間違えているのでは?
> ホスト名(IP アドレス)がないので。。。

上記指定ですが
・classid="http://WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
・classid="WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
・classid="http://(IPアドレス:ポート番号)/WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
いずれも結果は変わりませんでした。
取り急ぎ、返信いたします。
引用返信 編集キー/
■54221 / inTopicNo.4)  Re[3]: IEで.NETアプリケーションをホストする
□投稿者/ 魔界の仮面弁士 (1859回)-(2010/10/10(Sun) 11:27:30)
No54215 (田中ソフィア さん) に返信
> 上記指定ですが
> ・classid="http://WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
> ・classid="WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"
> ・classid="http://(IPアドレス:ポート番号)/WindowsFormsControlLibrary3.dll#WindowsFormsControlLibrary3.UserControl1"

html と DLL が同じ場所にあるのなら、2 番目の構文で構いません。
http://www.vb-user.net/junk/replySamples/2010.08.23.20.05/sample.html


ただし、通常のセキュリティ設定ではロードされませんので、
その Web サイトを信頼済みサイトのゾーンとして設定しておくなり、
DLL に電子署名等を施しておくとか、IE のセキュリティ設定を下げるなどの
対処が必要になります。
引用返信 編集キー/
■54225 / inTopicNo.5)  Re[4]: IEで.NETアプリケーションをホストする
□投稿者/ 田中ソフィア (5回)-(2010/10/10(Sun) 15:51:34)
2010/10/10(Sun) 20:02:26 編集(投稿者)

No54221 (魔界の仮面弁士 さん) に返信
ご回答ありがとうございます。

> html と DLL が同じ場所にあるのなら、2 番目の構文で構いません。
> http://www.vb-user.net/junk/replySamples/2010.08.23.20.05/sample.html
>
>
> ただし、通常のセキュリティ設定ではロードされませんので、
> その Web サイトを信頼済みサイトのゾーンとして設定しておくなり、
> DLL に電子署名等を施しておくとか、IE のセキュリティ設定を下げるなどの
> 対処が必要になります。

IEのオプション設定により
http://(IPアドレス)を信頼済みサイトに設定
・「インターネット」「ローカルインターネット」「信頼済みサイト」それぞれ各項目を有効に設定
・VS 2008よりアセンブリに署名を実行
を全て試しましたが、結果は変わりませんでした。。。

ただ、
・ご提示頂いたサイトや他のサイトのオブジェクトは実行できていること
・他のサイトで実行できたDLLを(省略)\Tomcat 6.0\webapps\ROOTに配置し、http://(IPアドレス:ポート番号)/index_dialog.htmlから実行しても失敗すること
により原因は
http://(IPアドレス:ポート番号)周りの設定のような気がしています。

もう少し調査してみますが、
何か助言がありましたら、いただけると助かります。


引用返信 編集キー/
■54272 / inTopicNo.6)  Re[5]: IEで.NETアプリケーションをホストする
□投稿者/ 魔界の仮面弁士 (1861回)-(2010/10/12(Tue) 17:11:40)
No54225 (田中ソフィア さん) に返信
> により原因は
> http://(IPアドレス:ポート番号)周りの設定のような気がしています。

先のサンプルを LAN 上のサーバーに配置して、
 http://ServerName:8010/sample.htm
 http://172.*.*.*:8010/sample.htm
の両方の形式を試したところ、当方の環境では
前者(ローカル イントラネット ゾーン)は DLL がロードされましたが、
後者(インターネット ゾーン)では読み込まれませんでした。

しかし、IE のオプション設定で http://(IPアドレス) を信頼済みサイトのゾーンに
割り当てたところ、後者の IP 指定でも DLL がロードされました。

# あとは何が違うのか…。
引用返信 編集キー/
■54336 / inTopicNo.7)  Re[6]: IEで.NETアプリケーションをホストする
□投稿者/ 田中ソフィア (9回)-(2010/10/14(Thu) 10:52:11)
No54272 (魔界の仮面弁士 さん) に返信

色々試してみたところ、Apacheでは自作のDLLが読み込まれましたが、TomcatではDLLが読み込まれませんでした。

おそらくTomcatの設定を変えなければならない(もしくは連携しなければ実現できない?)か、
もう少し調査を行ってみます。
引用返信 編集キー/
■54340 / inTopicNo.8)  Re[7]: IEで.NETアプリケーションをホストする
□投稿者/ todo (60回)-(2010/10/14(Thu) 11:19:16)
ApacheとTomcatのアクセスログを比較してみては?
引用返信 編集キー/
■54341 / inTopicNo.9)  Re[7]: IEで.NETアプリケーションをホストする
□投稿者/ 魔界の仮面弁士 (1868回)-(2010/10/14(Thu) 11:32:54)
No54336 (田中ソフィア さん) に返信
> 色々試してみたところ、Apacheでは自作のDLLが読み込まれましたが、TomcatではDLLが読み込まれませんでした。

[Fiddler2] あるいは [横取り丸] ないしは [Microsoft Network Monitor] などを使って、
両環境での HTTP 応答を比較してみてください。

content-type が違っていたりはしませんか?
あるいは、応答ボディのバイナリが化けていたりはしませんか?
引用返信 編集キー/
■54385 / inTopicNo.10)  Re[8]: IEで.NETアプリケーションをホストする
□投稿者/ 田中ソフィア (10回)-(2010/10/16(Sat) 20:51:48)
No54341 (todo さん) に返信
No54341 (魔界の仮面弁士 さん) に返信

返信送れて申し訳ございません。

content-typeをどちらの環境でも同様にして[Fiddler2]を使ってHTTP応答を参照してみたところ、
Apacheでは「/iexplore.exe.config」が呼ばれ、そこでtext/html; charset=iso-8859-1が指定されており、
Tomcatでは「/iexplore.exe.config」が呼ばれておりませんでした。

/iexplore.exe.configを調べてみましたが、資料が少なく困っております。
動作されている環境ではTomcatでも「/iexplore.exe.config」は呼ばれているのでしょうか?
また、「/iexplore.exe.config」について何かご存知でしょうか?
引用返信 編集キー/
■54397 / inTopicNo.11)  Re[9]: IEで.NETアプリケーションをホストする
□投稿者/ 田中ソフィア (11回)-(2010/10/18(Mon) 10:32:02)
Apache + Tomcat環境なら動作することが確認できました。
Tomcat環境での問題は解決していませんが、
Apache + Tomcat環境で運用ということになりましたので解決とさせていただきます。

ご回答いただいた皆様ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -