vb写的active dll 在服务器上用vb写的程序调用结果正常 用iis+php调用结果不正常

Amaza 2017-08-16 07:04:15
其中有段读取硬盘序列号的信息,返回0
如果用apache + php调用结果又是正常的
IIS6.0+php 结果不正常
怀疑是权限问题
...全文
177 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Amaza 2017-08-17
  • 打赏
  • 举报
回复
组件服务权限开始就想到了,但是2003下怎么也找不到自己的组件 搜索注册表可以看到 也有一串很长的数字 用那串数字也看不到
笨狗先飞 2017-08-17
  • 打赏
  • 举报
回复
引用 8 楼 Amaza 的回复:
[quote=引用 7 楼 bakw 的回复:] 权限问题,把运行iis的帐号改一个权限高的,比如administrator之类的,在身份验证那个项目里可以改。
问题解决了!准备结帖 还有一个问题,这样的高权限会有风险吗?[/quote] 但这也是没办法的办法, 或者可以组件形式你试试,只把你的DLL组件帐户权限提高,在管理工具的组件服务下边找找。 不知道是不是能看到你的dll组件,你把你组件的帐号权限改一下。
笨狗先飞 2017-08-16
  • 打赏
  • 举报
回复
权限问题,把运行iis的帐号改一个权限高的,比如administrator之类的,在身份验证那个项目里可以改。
Amaza 2017-08-16
  • 打赏
  • 举报
回复
用文件传递信息当然是可以的,主要的问题是php是多发请求,vb是单个执行,这样会导致很复杂的情况出现。最理想的是做com组件。处理起来简单很多。
赵4老师 2017-08-16
  • 打赏
  • 举报
回复
不要做A语言代码修改为B语言代码的无用功。 也不要做用A语言代码直接调用B语言代码库这样复杂、这样容易出错的傻事。 只需让A、B语言代码的输入输出重定向到文本文件,或修改A、B语言代码让其通过文本文件输入输出。 即可很方便地让A、B两种语言之间协调工作。 比如: A将请求数据写到文件a.txt,写完后改名为aa.txt B发现aa.txt存在时,读取其内容,调用相应功能,将结果写到文件b.txt,写完后删除aa.txt,再将b.txt改名为bb.txt A发现bb.txt存在时,读取其内容,读完后删除bb.txt 以上A可以替换为任何一种开发语言或开发环境,B可以替换为任何一种与A不同的开发语言或开发环境。 除非A或B不支持判断文件是否存在、文件读写和文件更名。 但是谁又能举出不支持判断文件是否存在、文件读写和文件更名的开发语言或开发环境呢? 可以将临时文件放在RamDisk上提高效率减少磨损磁盘。 数据的结构很复杂的话,文本文件的格式问题可参考json或xml 共享临时文本文件这种进程之间的通讯方法相比其它方法的优点有很多,下面仅列出我现在能想到的: ·进程之间松耦合 ·进程可在同一台机器上,也可跨机,跨操作系统,跨硬件平台,甚至跨国。 ·方便调试和监视,只需让第三方或人工查看该临时文本文件即可。 ·方便在线开关服务,只需删除或创建该临时文本文件即可。 ·方便实现分布式和负载均衡。 ·方便队列化提供服务,而且几乎不可能发生队列满的情况(除非硬盘空间满) ·…… “跨语言、跨机,跨操作系统,跨硬件平台,跨国,跨*.*的”苦海无边, 回头是“使用共享纯文本文件进行信息交流”的岸!
Amaza 2017-08-16
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
现在是开源时代。 奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
歪楼了!做企业开发 不加密hold不住呀。
赵4老师 2017-08-16
  • 打赏
  • 举报
回复
引用 2 楼 Chen8013 的回复:
[quote=引用 1 楼 zhao4zhong1 的回复:] 现在是开源时代。 奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
扯蛋………… [/quote] 看你的头像,就知道你已经把地球这个大蛋扯变形了都。
舉杯邀明月 2017-08-16
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
现在是开源时代。 奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
扯蛋…………
赵4老师 2017-08-16
  • 打赏
  • 举报
回复
现在是开源时代。 奉劝楼主不要把有限的生命浪费在无限的加密解密死循环中!
Amaza 2017-08-16
  • 打赏
  • 举报
回复
引用 7 楼 bakw 的回复:
权限问题,把运行iis的帐号改一个权限高的,比如administrator之类的,在身份验证那个项目里可以改。
问题解决了!准备结帖 还有一个问题,这样的高权限会有风险吗?
由本人第一次尝试制作的录像视频教程,由于电脑速度较慢,播放时间较慢,请谅解。 本录像讲解最基础的VB封装ASP代码生成DLL的制作教程,适合初级学习者参考。也是本人学习VB制作ASP组件的第一个尝试,录像基本成功。 用vbasp组件(dll)示例 下面,将演示如何使用vb制作asp的dll组件... 1. 启动你的vb,选择activex dll图标,然后在点击菜单的工程>>引用,接 着在弹出的"引用"窗口从中选择 microsoft active server pages object library. 2. 给工程和类重命名,在asp中调用时,就全靠它了^_^!我们的工程名改 为aspdll,类名为demo.在asp中调用的方法是: set objreference = server.createobject("工程名.类名") 本例调用的相应代码如下: set objreference = server.createobject("aspdll.demo") 调用的方法和一般常见的,比如fso等组件的方法一模一样. 心动了吧,呵呵,下面我们继续.... 3. 接着,我们开始编代码,打开我们刚才新建工程类窗口,第一步,先声 明我们要用到的变量.主要是在vb声明替代asp几大对象的变量名,定义这 asp的几大对象后,我们就可以像在asp环境中调用类似request,server等 这样的几大对象了.(声明的变量名完全可以和asp对象名一样)代码如下: '********************************************** private mys criptingcontext as s criptingcontext private myapplication as application private myrequest as request private myresponse as response private myserver as server private mysession as session '********************************************** 4. 声明完变量后,我们必须在类中onstartpage子函数.本函数的作用是 当用户访问一个带有本组件的asp文件时,iis就会把s criptingcontext传 送给我们vb组件对象.这个s criptingcontext包括了全部的asp方法和属性 .这样,就使得我们有能力访问所有asp的对象.代码如下: '***************************************************************** public sub onstartpage(passeds criptingcontext as s criptingcontext) set mys criptingcontext = passeds criptingcontext set myapplication = mys criptingcontext.application set myrequest = mys criptingcontext.request set myresponse = mys criptingcontext.response set myserver = mys criptingcontext.server set mysession = mys criptingcontext.session end sub '***************************************************************** 通过上面的函数,我们在asp中调用本组件后,上面的几大对象就完全可以 像平时我们在asp使用一样了,举个例子: 在asp中实现接收提交的表单值并输出屏幕: <% formvalue=request.form("username") response.write ("你提交的用户名是"&myformvalue&",欢迎您!") %> 在vb中实现方法是: formvalue=myrequest.form("username") myresponse.write ("你提交的用户名是"&myformvalue&",欢迎您!") 5. 相对应于onstartpage函数,我们还要编一个关闭onstartpage中对象 的onendpage函数,代码如下: '********************************* public sub onendpage() set mys criptingcontext = nothing set myapplication = nothing set myrequest = nothing set myresponse = nothing set myserver = nothing set mysession = nothing end sub '******************************** 6.通过编上面的代码,我们在vb中编asp组件实例的环境已经具备了, 下面,我就尝试两个与asp中基本相类似的函数,也就是说,关键部位就在 这里了,你完全可以把你所有的asp源码封装在这里... 先个最简单的输出屏幕信息函数: '******************************************** public sub welcomeinfo() myresponse.write ("阿里西西_web开发,欢迎访www.alixixi.com!") end sub '******************************************** 再个带参数传递及显示now()现在时间的函数: '********************************** public sub setinfo(content as string) myresponse.write content & "
" myresponse.write "现在的时间是:" & now() end sub '********************************** 通过上面的asp代码实例,你会发现其实这和asp源码基本没有区别^_^ 7. 好了,整个类就编完了,我们开始打包封装成dll.我们先保存工程, 这里我们保存到e:\vbdll,接着选择菜单上的文件>>生成aspdll.dll,很 快的dll组件就封装并生成完毕了. 8. 生成dll文件后,我们开始调试和使用.在系统运行栏输入cmd,进入dos 命令行状态,我们要注册刚才生成的dll组件,注册方法是可以直接输入 regsvr32 e:\vbdll\aspdll.dll ,为了安装方便,你同时可以个批处理 文件,这里不一一举例了...好,注册成功! 9.注册完dll组件后,我们针对刚才的组件,按照上面介绍过的方法编一 个asp文件来调试.代码如下: <% set redll = server.createobject("aspdll.demo") redll.welcomeinfo response.write "
" redll.setinfo("传递参数到服务器组件,并返回值及当前日期now()!") response.write "
" set redll = nothing %> 在iis中打开此文件,屏幕显示:

863

社区成员

发帖
与我相关
我的任务
社区描述
VB COM/DCOM/COM+
c++ 技术论坛(原bbs)
社区管理员
  • COM/DCOM/COM+社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧