求助,asp.net中,js调com组件出现不支持属性或方法

问题描述

现在需要在js中调用C#的dll,查询网上的资料后说需要编写com组件,于是先写了个简单的com组件做测试,但是asp.net中的js调用时一直报错“对象不支持属性或方法”代码是这样的接口:[ComVisible(true)][Guid("2CBD3D76-35F1-4f9d-9C1B-9DBFEE412F76")]publicinterfaceIHello{stringShowHello();}接口的实现[ComVisible(true)][Guid("EA2F140A-108F-47ae-BBD5-83EEE646CC0D")][ProgId("HelloWord.Hello")]publicclassHello:IObjectSafety,IHello{publicstringShowHello(){return"hello";}privateconststring_IID_IDispatch="{00020400-0000-0000-C000-000000000046}";privateconststring_IID_IDispatchEx="{a6ef9860-c720-11d0-9337-00a0c90dcaa9}";privateconststring_IID_IPersistStorage="{0000010A-0000-0000-C000-000000000046}";privateconststring_IID_IPersistStream="{00000109-0000-0000-C000-000000000046}";privateconststring_IID_IPersistPropertyBag="{37D84F60-42CB-11CE-8135-00AA004BB851}";privateconstintINTERFACESAFE_FOR_UNTRUSTED_CALLER=0x00000001;privateconstintINTERFACESAFE_FOR_UNTRUSTED_DATA=0x00000002;privateconstintS_OK=0;privateconstintE_FAIL=unchecked((int)0x80004005);privateconstintE_NOINTERFACE=unchecked((int)0x80004002);privatebool_fSafeForScripting=true;privatebool_fSafeForInitializing=true;publicintGetInterfaceSafetyOptions(refGuidriid,refintpdwSupportedOptions,refintpdwEnabledOptions){intRslt=E_FAIL;stringstrGUID=riid.ToString("B");pdwSupportedOptions=INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA;switch(strGUID){case_IID_IDispatch:case_IID_IDispatchEx:Rslt=S_OK;pdwEnabledOptions=0;if(_fSafeForScripting==true)pdwEnabledOptions=INTERFACESAFE_FOR_UNTRUSTED_CALLER;break;case_IID_IPersistStorage:case_IID_IPersistStream:case_IID_IPersistPropertyBag:Rslt=S_OK;pdwEnabledOptions=0;if(_fSafeForInitializing==true)pdwEnabledOptions=INTERFACESAFE_FOR_UNTRUSTED_DATA;break;default:Rslt=E_NOINTERFACE;break;}returnRslt;}publicintSetInterfaceSafetyOptions(refGuidriid,intdwOptionSetMask,intdwEnabledOptions){intRslt=E_FAIL;stringstrGUID=riid.ToString("B");switch(strGUID){case_IID_IDispatch:case_IID_IDispatchEx:if(((dwEnabledOptions&dwOptionSetMask)==INTERFACESAFE_FOR_UNTRUSTED_CALLER)&&(_fSafeForScripting==true))Rslt=S_OK;break;case_IID_IPersistStorage:case_IID_IPersistStream:case_IID_IPersistPropertyBag:if(((dwEnabledOptions&dwOptionSetMask)==INTERFACESAFE_FOR_UNTRUSTED_DATA)&&(_fSafeForInitializing==true))Rslt=S_OK;break;default:Rslt=E_NOINTERFACE;break;}returnRslt;}}调用的时候<htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><title></title><scriptlanguage="javascript"type="text/javascript">functionTest(){varmyAx=document.getElementById("t");if(myAx!=null){vars=myAx.ShowHello();alert(s);}}</script></head><body><objectclassid="clsid:EA2F140A-108F-47AE-BBD5-83EEE646CC0D"id="t"style="width:0;height:0"></object><formid="form1"runat="server"><div><asp:TextBoxrunat="server"ID="txtPass"Width="500px"Height="400px"TextMode="MultiLine"></asp:TextBox><asp:Buttonrunat="server"Text="计算密码"ID="btnCalPass"OnClick="btnCalPass_Click"/><asp:Buttonrunat="server"Text="客户端计算密码"OnClientClick="Test();"/></div></form></body></html>请帮忙看看是哪里出问题了呢?

解决方案

解决方案二:
没报错,没环境,看不出来,帮顶。

时间: 2024-12-12 04:45:11

求助,asp.net中,js调com组件出现不支持属性或方法的相关文章

求asp.net 中,在JPG图片上添加GIF动画水印的方法!

问题描述 求asp.net中,在JPG图片上添加GIF动画水印的方法!搜索了很长时间,没找到,朋友们帮忙一下! 解决方案 解决方案二:使用第三方组件加水印比较方便随便baidugoogle一下也有几百个结果解决方案三:JPG和GIF是两中格式,一种是会动的,一种是不会动的.如果你要在jpg图片上加动画水印,我是不是可以理解为你重绘了一张GIF动化效果,然后把这个JPG图片插入到每一帧当中.个人觉得太不现实也太过烦琐.解决方案四://加水印----------------->stringwImag

asp.net中显示DataGrid控件列序号的几种方法

asp.net|datagrid|datagrid控件|显示 asp.net中显示DataGrid控件列序号的几种方法 作者:郑佐 2004-9-10 在aps.net中多数据绑定的控件很多,论功能来说,应该属DataGrid最为齐全,但它没有提供现成的显示记录序号的功能,不过我们可以通过它所带的一些参数来间接得到序号,下面来看看怎样得到和显示序号值计算方式如下: (1)在后台 DataGrid.CurrentPageIndex * DataGrid.PageSize + e.Item.Item

JS设置网页图片vspace和hspace属性的方法_javascript技巧

本文实例讲述了JS设置网页图片vspace和hspace属性的方法.分享给大家供大家参考.具体分析如下: hspace可以以像素为单位,指定图像左边和右边的文字与图像之间的间距:vspace 值则是上面的下面的文字与图像之间的距离的像素数 <!DOCTYPE html> <html> <head> <script> function setSpace() { document.getElementById("compman").hspac

asp.net中安装使用OWC组件生成EXECEL步骤

asp.net FP2003\OWC11.MSI 引用 Microsoft Office Web Components 11.0 C:\Program Files\Common Files\Microsoft Shared\Web Components\11\OWC11.DLL 安装文件OFFICE2003安装光盘\FP2003\OWC11.MSIOFFICE2003安装光盘\OFFICE11\OWC11.MSI 默认安装完OFFICE2003现在不知道以前是不是有了,安装后在STUDIO200

asp.net中JS,CS 调用后台变量的值多种方法

(1)//后台:Publicstringstr="123";  //最好为Public类型 直接在AspX前台页面HTML代码中要放的位置写入如下代码: <td><%=str%></td>   (2)用JS取本页面中的服务器端控件值: 服务器端控件值:  代码如下 复制代码 functiona()      {       vari;         i=document.getElementById('<%=服务器控件id.ClientID

Asp.Net中DataGrid的模版列(TemplateColumn)内容控制简单方法

asp.net|datagrid|控制 最近写了几个asp.net的项目.其中,Asp.Net的控件DataGrid使用的最多了,前几天需要一个功能,我研究了很长时间,发现一个方法,应该是最简单的实现.现表述如下. DataGrid的html定义很简单,如下 <Asp:DataGrid ID="myDatagrid" runat="server" datakeyfield="fID" AutoGenerateColumns="Fa

JS图片浏览组件PhotoLook的公开属性方法介绍和进阶实例代码_图象特效

属性 speed :设置图片切换的速度 width:组件的宽度 height:组件的高度 cellStructures:可设置效果矩阵的行列例如{row:8,col:8}注意,这个行列要和效果矩阵switchTable的行列对应 方法 init():初始化 addswitchTable(switchTable):添加效果矩阵 add(url):添加图片 addswitchMethod(func,type):添加切换方法(例如淡出,滑出),现在功能未完整,type只能填"show"一个值

javascript中的高级特性及特别对象、属性和方法

javascript|对象|高级 一,编写构造函数可以使用 new 运算符结合像 Object().Date() 和 Function() 这样的预定义的构造函数来创建对象并对其初始化.面向对象的编程其强有力的特征是定义自定义构造函数以创建脚本中使用的自定义对象的能力.创建了自定义的 构造函数,这样就可以创建具有已定义属性的对象.下面是自定义函数的示例(注意 this 关键字的使用). function Circle (xPoint, yPoint, radius) {   this.x = x

js入门教 for/in 数组_Object属性和方法

上篇文章讲了js中的变量,表达式,和运算符 还有一些 js 语句. 这章我们来探讨js中的对象和数组.  比较难哦.做好心里准备吧...... 深呼吸... 1 , for  /  in : 一种遍历(枚举)对象属性的方法,可以循环我们呢事先不知道的属性. 它可以枚举处用户定义的所有属性,但却不能枚举出某些预定义的属性和方法. 不能枚举的属性通常是继承的属性 删除一个对象的属性:  delete book.width ; 从对象中移除了属性,在删除之后,用for/in将不会枚举该属性,并且用wi