小弟用D7做的Web service的dll(ISAPI/NSAPI)文件部署在一台Web服务器上的IIS上,客户通过软件链接该dll文件上传数据到SQL server上,现在发现如果上传的次数多了,则会无法链接该dll文件(wsdl检验如,http://www.asd.com/vv/sasd.dll/wsdl)也就无法使用Web Service了(重启IIS后又可以用),不知是不是dll占用IIS内存没有释放,不知大家有没有这方面的经验,IIS上是不是有什么特别设置或程序本身要注意哪些问题!请各位不吝指教!  

解决方案 »

  1.   

    是不是你限制了IIS的连接数量。
      

  2.   

    D7做的Web service的dll(ISAPI/NSAPI)的毛病大了,^_^有调用时成功一次失败一次的情况:需要更改ISAPIApp,ISAPIThreadPool的顺序解决。
    不能使用midas.dll,也就是不能使用DataSetProvider,否则在长时间(次数)
    调用后会出现加载midas.dll失败的错误。也许你是后者,那就放弃midas.dll吧。如果不是这些原因,那就是你的程序有问题了,^_^
      

  3.   

    我是用的D6开发的。会出现此问题么。楼上的“需要更改ISAPIApp,ISAPIThreadPool的顺序解决”什么意思,为什么要这么做?
      

  4.   

    ISAPIApp,ISAPIThreadPool里面有同名函数存在..所以有这BUG.呵呵.不过ISAPI本身是一个实例多线程服务于用户..
    CGI不用关心的一些细节问题,在ISAPI里面显得非常突出.
      

  5.   

    D7上有的问题D6上肯定有,这叫向下兼容^_^你是怎么“上传数据到SQL server”的?D6装过补丁吗,装了补丁才有“需要更改ISAPIApp,ISAPIThreadPool的顺序”,
    你的应该不会有这个问题。想看内存的使用情况可以在任务管理器中找找“DLLHOST.DLL”,可能你会发现
    好几个,不过能看出来哪一个是要关注的。值得关注的只有“midas.dll”,也就是TDataSetProvider的相关内容,
    建议不要使用。其他的好像没有什么问题了,你可以自己做个简单例子调调试试。