关于ATL编写的WebService的重复调用外部dll问题

net_wolf 2008-01-03 12:41:10
用ATL编写的Web Service,调用某个本地DLL完成功能,返回字符串数据。
编译通过,就是调用的时候,性能低下,通过 Process Monitor 发现每次调用Web Service,它首先在构造函数里面加载外部dll,然后调用外部dll的函数,最后在析构函数里面释放外部dll。
如此反复,1000次Web Service调用导致1000次加载dll,导致性能低下,如果把加载外部dll设定为静态变量,则能够解决问题。

然而,在以前没有使用静态变量的时候,有的时候调用Web Service也是非常迅速的,由此怀疑是isapi相关的某个参数设定的问题,是否有什么地方可以设定isapi不在每次Web Service请求中构造和析构Web Service类,从而避免多次重复加载外部dll的问题?
...全文
150 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jameshooo 2008-01-04
  • 打赏
  • 举报
回复
本来你的解决方案就很好啊,用一个静态或全局变量,保证第一次构造WebService类的时候加载外部DLL
net_wolf 2008-01-04
  • 打赏
  • 举报
回复
需要多个实例,并发运行的。
jameshooo 2008-01-03
  • 打赏
  • 举报
回复
如果你的WebService不需要多个实例存在,你可以把COM接口设置成SINGLETON模式,这样只会加载一次

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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