可能是你的调用进程还活着,所以有冲突。检查一下你的dll原程序,是否安全的释放了所有的调用。

解决方案 »

  1.   

    谢谢‘不老仙翁’
    这是我的源程序,是Socket没释放完全吗,请赐教!!!
    void CISASampleExtension::ShowHello(CHttpServerContext *pCtxt, LPCSTR pstrName, LPCSTR lID) 

    tagMap Up_Map; 
    memset(&Up_Map,0,sizeof(tagMap)); 
    sprintf(Up_Map.UnitID,"%s",pstrName); 
    if(!strcmp(lID,"车台定位")) 
    testID = 1; 
    else if(!strcmp(lID,"地图放大")) 
    testID = 2; 
    else if(!strcmp(lID,"地图缩小")) 
    testID = 3; 
    Up_Map.MapType = testID; tagMap Up_Map; 
    tagsuccess Down_Map; 
    memset(&Up_Map,0,sizeof(tagMap)); 
    memset(&Down_Map,0,sizeof(tagsuccess)); 
    int testID; 
    CSocket * pTcpSocket ; pTcpSocket = new CSocket(); 
    if( !pTcpSocket->Create( ) ) //偶数次在此出现异常,当奇数次都可以 

    int err = GetLastError(); 
    pTcpSocket->Close(); 
    delete pTcpSocket; 
    pTcpSocket = NULL; 

    if(!pTcpSocket->Connect("127.0.0.1",4000)) 

    delete pTcpSocket; 
    pTcpSocket = NULL; 

    sprintf(Up_Map.UnitID,"%s",pstrName); 
    if(!strcmp(lID,"车台定位")) 
    testID = 1; 
    else if(!strcmp(lID,"地图放大")) 
    testID = 2; 
    else if(!strcmp(lID,"地图缩小")) 
    testID = 3; 
    Up_Map.MapType = testID; 
    pTcpSocket->Send(&Up_Map,sizeof(tagMap)); // Sleep(1000); 
    if(!sizeof(tagsuccess) == pTcpSocket->Receive((void *)&Down_Map,sizeof(tagsuccess))) 
    return; pTcpSocket->Close(); 
    delete pTcpSocket; 
    pTcpSocket = NULL; 
    StartContent(pCtxt); 
    WriteTitle(pCtxt); 
    *pCtxt << _T("<div align='center'><center><PRE>"); 
    *pCtxt << _T("<font face='仿宋_GB2312' size='6'>Listen Internet GPS Search</font></pre>"); *pCtxt << _T("<table border=1>"); 
    *pCtxt << _T("<tr ><td>UnitID</td>"); 
    *pCtxt << _T("<td>") << pstrName; 
    *pCtxt << _T("</td></tr>"); *pCtxt << _T("<tr><td>图片</td>"); 
    *pCtxt << _T("<td>") <<_T("<image width='456' height='124' src='") << Down_Map.UnitID ; 
    *pCtxt <<_T(".gif") << _T("'>"); *pCtxt << _T("</td></tr>"); *pCtxt << _T("<tr><td>Type</td>"); 
    *pCtxt << _T("<td>") << Down_Map.UnitID; 
    *pCtxt << _T("</td></tr>"); *pCtxt << _T("<tr><td></td>"); 
    *pCtxt << _T("<td>") << _T("<a href='sample.htm'>上一页</a>"); 
    *pCtxt << _T("</td></tr>"); 
    *pCtxt << _T("</table>"); *pCtxt << _T("</center></div>"); EndContent(pCtxt); }
      

  2.   

    问题时IIS调用ISAPI DLL时,是引用时加载,不重起进程不会销毁的!!!