在asp.net页面中调用ActiveX控件时出现“拒绝访问”的错误

jedliu 2007-12-05 05:41:18
按照http://msmvps.com/blogs/pauldomag/archive/2006/08/16/107758.aspx
中写了如下代码:

namespace AXControl
{
public partial class MyControl : UserControl, ICOMWrapper
{
private string username;

public string Username
{
get
{
return username;
}
set
{
username = value;
this.tbUsername.Text = value;
}
}
}

public interface ICOMWrapper
{
string Username
{
set;
get;
}
}
}



然后在页面中调用:

<object id="MyControl1" name="MyControl1"

classid="/DllFolder/AXControl.dll#AXControl" width="200"
height="48"></object> <br />
<input id="txtIn" name="txtIn" value="enter text here" />
<input id="Button1" type="button" value="button" onclick="AddTheValue()" />


然后在JS中进行调用时出现了错误:

<script type="text/javascript" language="javascript">
function AddTheValue()
{
var textObj = document.getElementById('txtIn');

var conObj = document.getElementById('MyControl1');
}
</script>

就是在执行“var conObj = document.getElementById('MyControl1');”句时出现了“拒绝

访问”的错误。

各位老大,帮帮忙!
...全文
236 20 打赏 收藏 举报
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
keanulaw 2008-06-06
唉,可惜啊
  • 打赏
  • 举报
回复
jedliu 2007-12-19
还是没人答,我只好搞成exe文件了!
哎,CSDN怎么搞成这样啊,问题都没有人能解决!
  • 打赏
  • 举报
回复
zjysky 2007-12-12
我原来也研究过这个东西,没搞成,有人再vs2003使用net1.0做成果,但是vs2005和net2.0就不行了。而且都是activex是被淘汰的技术,估计net也不准备支持了吧。
你如果研究好的写个文章让大家看看啊
  • 打赏
  • 举报
回复
jedliu 2007-12-12
!!!!!!!!!!!!!!!!!!!!!!!!!!
  • 打赏
  • 举报
回复
jedliu 2007-12-12
还没研究好啊,直接调用.exe文件时可以的,但包到cab文件里就是不行啊!
  • 打赏
  • 举报
回复
jedliu 2007-12-11
anybody? help me!
  • 打赏
  • 举报
回复
jedliu 2007-12-11
noby!
that's disillusionary
  • 打赏
  • 举报
回复
jedliu 2007-12-10
现在有了一点进展,我生成了一个安装程序,然后重写事件OnAfterInstall,在其中调用Regasm.exe对上面程序生成的dll文件进行注册。注册完成后将生成的.msi或.exe包含到cab文件中,然后在网页中进行调用,安装提示出来了,点“安装”后却没有任何效果。
不知道是不是inf文件和ddf文件出现了错误,在这里帖出来,大家帮忙分析下。

inf文件


[Version]
Signature="$HangZhou$"
AdvancedInf=2.0

[Add.Code]
Installer.msi = Installer.msi

[Installer.msi]
file-win32-x86==thiscab
clsid={4db51e65-00c4-4e6a-8414-d98f51545674}
FileVersion=1,0,0,0
RegisterServer=yes
DestDir=11
run = msiexec /i %EXTRACT_DIR%\Installer.msi /qn



ddf文件

.OPTION EXPLICIT
.Set Cabinet=on
.Set Compress=on
.Set MaxDiskSize=CDROM
.Set ReservePerCabinetSize=6144
.Set DiskDirectoryTemplate=CDROM
.Set CompressionType=MSZIP
.Set UniqueFiles="OFF"
.Set CompressionLevel=7
.Set CompressionMemory=21
.Set CabinetNameTemplate="ActiveX.CAB"
.Set DiskDirectory1=d:\
"D:\Installer.inf"
"D:\Installer.msi"



调用方法

<object classid="clsid:4db51e65-00c4-4e6a-8414-d98f51545674"
codebase="DllFolder/ActiveX.CAB#version=1,0,0,0"></object>
  • 打赏
  • 举报
回复
mextb1860 2007-12-06
不太属性。帮你顶顶吧
  • 打赏
  • 举报
回复
siugwan 2007-12-06
请参考这个
http://homer.cnblogs.com/archive/2005/01/26/97822.aspx
  • 打赏
  • 举报
回复
jedliu 2007-12-06
Anybody?
  • 打赏
  • 举报
回复
jedliu 2007-12-06
对ActiveX不熟,在网上找了好久,最后找到了这种方法:

public interface ICOMWrapper
{
string MyName();
}

[ClassInterface(ClassInterfaceType.AutoDual)]
public class MyClass : ASignatures
{
public string MyName()
{
return "Jason Burn";
}
}

然后编译类文件MyClass.cs生成MyClass.dll,然后通过VS的命令工具,通过regasm来注册。
最后,在JS中通过new ActiveXObject("ICOMWrapper.MyClass")来访问即可。

当然,这种手动注册很不爽,哪位老大能教我怎么进行自动注册?
  • 打赏
  • 举报
回复
hy_lihuan 2007-12-05
汗,看不出来哪里有 ActiveX
  • 打赏
  • 举报
回复
jedliu 2007-12-05
ActiveX? 这哪里是 ActiveX
ActiveX 是用 guid 的那种,你这种不是 ActiveX 方式
就是把.net 控件放到html 上了需要在网页里
这个可能需要在,管理工具、"Microsoft .NET Framework * 配置"
理设置权限

------------------------------------------------------------
我也发现了,现在正在试!
不过哪位仁兄有现成的代码就更好了!
  • 打赏
  • 举报
回复
siugwan 2007-12-05
你这个是嵌入WINFORM,并不是ACTIVEX,你要实现类似ACTIVEX的效果,必须把DLL注册到客户端COM对象
  • 打赏
  • 举报
回复
曲滨_銘龘鶽 2007-12-05
在某些系统下好像需要设置权限的!
  • 打赏
  • 举报
回复
曲滨_銘龘鶽 2007-12-05
ActiveX? 这哪里是 ActiveX
ActiveX 是用 guid 的那种,你这种不是 ActiveX 方式
就是把.net 控件放到html 上了需要在网页里
这个可能需要在,管理工具、"Microsoft .NET Framework * 配置"
理设置权限
  • 打赏
  • 举报
回复
zhongwanli 2007-12-05
将这个标记
<object id="MyControl1" name="MyControl1"

classid="/DllFolder/AXControl.dll#AXControl" width="200"
height="48"></object> <br />

放到<from></form>外试试。
  • 打赏
  • 举报
回复
public myControl() {

InitializeComponent();

}


是不是少了MyControl的构造函数??
  • 打赏
  • 举报
回复
zhangjjhua 2007-12-05
虽然没有做过你这个,但是,一般拒绝访问,都是权限的问题...检查下..
  • 打赏
  • 举报
回复
相关推荐
发帖
.NET社区
加入

6.0w+

社区成员

.NET技术交流专区
社区管理员
  • ASP.NET
  • R小R
  • 喵叔哟
帖子事件
创建了帖子
2007-12-05 05:41
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。