2012-01-02 18 views
1

私は.net usercontrolを持っており、asp.netページにObjectとして表示しています。 usercontrolのdllのターゲットフレームワークが3.5の場合、すべて動作します。 .net 4.0に変更すると、ActiveXが表示されません。.net activexはフレームワーク4.0で動作していません

ユーザーコントロールは非常に簡単です。それはちょうど1ボタンと1つのラベルです:

[ComVisible(true)] 
public partial class UserControl1 : UserControl 
{ 
    public UserControl1() 
    { 
     InitializeComponent(); 
     label1.Text = "0"; 
    } 
    private void button1_Click(object sender, EventArgs e) 
    { 
     label1.Text = Convert.ToInt32(label1.Text) + 1 + ""; 
    } 
} 

そして、これはhtmlコードです:

<object id="myControl2" name="myControl2" 
    classid="http:ClassLibrary1.dll#ClassLibrary1.UserControl1" 
    width="300" height="350" /> 
</asp:Content> 

それは働いていないのはなぜ?

+0

は、.NET 4がクライアントにインストールされていますか? – Yahia

+0

こんにちはヤヒア。はい、.net 4は既にインストールされています。 – MTs

答えて

1

同じことを試して、次のものを見つけた:

Web上にコントロールをホストする優れたソリューションがあるため、WindowsフォームコントロールをInternet Explorerでホストできなくなりました。したがって、IEHost.dllアセンブリとIEExec.exeアセンブリは.NET Frameworkから削除されています。この記事から

http://msdn.microsoft.com/en-us/library/ee941656.aspx

1

これはおそらく、.NET Frameworkの以前のバージョンでコンパイルされている.NET 4.

アセンブリにアップグレードされたセキュリティルールセットをアセンブリに適用されているとの問題は、レベル1の透明性を持っています。以前のバージョンから4.0にアップグレードされたアセンブリは、デフォルトでレベル2の透過性を持ちます。代わりに明示的にレベル1にすることができます。

AssemblyInfo.csに以下を追加してみてください:

using System.Security; 
// ... 
[assembly: SecurityRules(SecurityRuleSet.Level1)] 

セキュリティルールセットの詳細についてはを参照してください。私がされている

+0

こんにちはデニス。ご回答有難うございます。私はこれを試みたが、問題を解決していない。 .net 3.5と.net 4.0の間に他の変更はありますか? – MTs

+0

申し訳ありませんが、他のことは考えられません。 –

+0

調査できる場所にログがありますか? – MTs

2

Windowsがコントロールもはや.NETバージョン4でサポートされており、それらのサポートが削除されたフォーム。 Internet Explorerので

http://msdn.microsoft.com/en-us/library/vstudio/ee941656(v=vs.100).aspx

* ホスティングコントロール*
あなたは、もはやWeb上のコントロールをホストするためのより良い解決策があるため、Windowsは、Internet Explorerでフォームコントロールをホストすることができます。したがって、IEHost.dllアセンブリとIEExec.exeアセンブリは.NET Frameworkから削除されています。

は、Webアプリケーションでカスタムコントロールの開発のための以下の技術を使用することができます。

あなたはSilverlightアプリケーションを作成して、ブラウザの外で実行するように設定することができます。詳細については、「ブラウザ外のサポート」を参照してください。

?XAMLブラウザーアプリケーション(XBAP)をビルドして、WPF機能を利用することができます(クライアントコンピューターで.NET Frameworkが必要)。詳細については、「WPF XAMLブラウザーアプリケーションの概要」を参照してください。

3

IEのホスティングコントロールは、デフォルトでブロックされています(v4またはv4.5以降)。 「Webアプリケーション」のMSDN articleを参照してください。

幸いにも、それはこれらのREGキーを使用して再度有効に機能する超簡単です:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework] 
"EnableIEHosting"=dword:00000001 

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework] 
"EnableIEHosting"=dword:00000001 

x64のキーは、Win7の(x64)の上のIE8(X32)を実行している、私のためにそれを固定でしたx32用にコンパイルされた.NET v3.5 SP1コントロールを使用します。

+0

ありがとうございます!以前は多くのマシンでこれを動作させていましたが、Caspolという地獄で動作しましたが、突然動作を停止したり、サポートしなければならなかった新しいWindows 7マシンごとにトラブルシューティングを行うことが困難でした。これはIE 8で動作します。この最大の問題は、32xと64xの両方の小さな設定をすべて行う必要があるという事実です(参考、Wow6432Noteは64xマシンの32ビット修正です)。 – ps2goat

関連する問題