目标:用c#写一个com供ASP调用
特殊部分:这个com组件要调用第三方dll
问题:再不调用第三方dll的时候,组件运行正常,asp可正常调用。但是一旦涉及到调用第三方dll的方法时,asp会提示出错:
未能加载文件或程序集“itextsharp, Version=5.1.3.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca”或它的某一个依赖项。系统找不到指定的文件。换了个方法测试,写了个vbs脚本,调用自己写的com组件,发现运行正常,但是ASP调用就出错!求高手指点迷津另外多问句:
修改com重新生成dll后,用regasm注册,然后用Gacutil添加入全局缓存。发现用vbs调用组件的方法,可以看出是更新后的,但是用asp调用,还是旧的,这个是什么问题?

解决方案 »

  1.   

    因为权限不同吧。是不是要用 dcomcnfg 为 asp 的运行用户授权?
      

  2.   


    要么就是引用Dll的路径问题、 我遇到过类似的情况
      

  3.   


    dcomcnfg里边根本就找不到我自己用c#写的com啊。我还觉得奇怪。不用配置权限都能直接用。
      

  4.   


    请问引用路径应该怎么设置?我现在把自己写的dll和引用的dll,放在一起的,都在c:\根目录,注册的时候直接就是regasm c:\my.dll这样,然后这两个dll同时也放入c:\windows\system32\,但还是报错。
      

  5.   

    详细说明:
    我是用vs2005(c#)开发的com,在工程里引用了这个第三方的itextsharp.dll,操作步骤是项目-〉添加引用-〉浏览-〉选择itextsharp.dll(c:\itextsharp.dll),确定。然后编码完成后,发布my.dll。把my.dll复制到c:\,然后regasm c:\my.dll,gacutil /i c:\my.dll。同一台机器,通过vbs脚本可以正确创建对象并运行方法。但是在asp里调用,就会报错:未能加载文件或程序集“itextsharp……”或它的某一个依赖项。系统找不到指定的文件。。网上搜索得到一个提示说:““操作为潜入的资源”是c#引用dll的一种方式,你的也是c#的吗?不是的话是不行的。”,是不是这步出了问题?ps:目标机和开发机是同一台,2个dll不仅在c:\存在,同时还copy到c:\windows\system32\。但就是如上问题求高人现身啊!