mortiis
Goto Top

Probleme mit ISAPI.DLL unter IIS5

Hallo zusammen,

ich habe seit einiger Zeit ein ernsthaftes Problem mit einer selbstgebauten ISAPI.DLL.
Die DLL wurde in VC++ entwickelt. Als Webserver läuft der IIS5 unter Windows 2000 Pro.

Die DLL wird von einem Clientprogramm aufgerufen welches ,als Parameter, unter anderem längere Bytestreams zur verarbeitung an die DLL übergibt. Die ganze Prozedur funktioniert mitunter mehrer tausend mal problemlos. Irgendwann stürzt der Server mit folgender Fehlermeldung im Debug ab: "command | caused an unhandled exeption".
Im Bytestream lassen sich zu dem Zeitpunkt keine veränderungen feststellen.

Dieser Fehler tritt auch auf wenn mann selbige Daten über den Servercontext an eine Anwendung, zur Anzeige, übergibt.

Es besteht zwar der Verdacht das der IIS plötzlich zeichen des Bytestreams als Befehl verwerten will. In diesem Fall müsste der Fehler, meiner meinung nach, bei jedem aufruf auftreten und nicht so unvorhergesehen.

Hat von euch vielleicht jemand ein ähnliches Problem bzw. einen Lösunsgansatz dafür.

Danke schonmal und viele Grüße
Mortiis


Hier noch ein Codesample wie die Daten an den Server übergeben werden:

UINT nRet = 0;
CHttpConnection* pHttpConn = NULL;
CHttpFile* pHttpFile = NULL;
DWORD dwReturn = 0;
LPCTSTR lpstrServer = m_strServerIP;
unsigned short usPort = PORT_NUMBER;
LPCTSTR pstrUserName = m_strUsername;
LPCTSTR pstrPassword = m_strPassword;
CString strServerPath = m_strServerPath + '?' + strFunction;
LPCTSTR pstrVerb = "POST";
LPCTSTR pstrReferer = NULL;
LPCTSTR pstrVersion = m_strHTTPVersion;
LPCTSTR pstrAcceptTypes = "Accept: */*";
DWORD dwHttpRequestFlags = INTERNET_FLAG_KEEP_CONNECTION;
UINT ntimeOut = 30; m_IntSession.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 1000 * ntimeOut);

try {
//nur mit IP Adresse -> sonst auflösen
pHttpConn = m_IntSession.GetHttpConnection(lpstrServer, usPort, pstrUserName, pstrPassword);
pHttpFile = pHttpConn->OpenRequest(pstrVerb, strServerPath, pstrReferer, 1, &pstrAcceptTypes, pstrVersion, dwHttpRequestFlags);
pHttpFile->AddRequestHeaders(m_strServerHeader_1);
pHttpFile->AddRequestHeaders(m_strServerHeader_2, HTTP_ADDREQ_FLAG_ADD_IF_NEW);

if(nCount>0)
{
DWORD dwBegin = GetTickCount();
BOOL result = pHttpFile->SendRequest(m_strServerHeader_1, (LPVOID)lpBuf, nCount);
DWORD dwEnd = GetTickCount();
TRACE("SendRequest dauert %dn", dwEnd - dwBegin);
}
else
{
pHttpFile->SendRequest();
}

Content-Key: 31289

Url: https://administrator.de/contentid/31289

Printed on: April 26, 2024 at 12:04 o'clock

Mitglied: 16568
16568 Apr 27, 2006 at 09:54:48 (UTC)
Goto Top
Hast Du die Möglichkeit, das ganze mal unter IIS 6 zu verwenden?

Der IIS ist ja an und für sich schon heikel...

Ist er wenigstens aktuell gepatcht?


Lonesome Walker
PS: mit der ISAPI.DLL (original) hatte ich schon öfters Probleme; manchmal waren sie auf einmal von selbst verschwunden, manchmal nach einem Patch... ist aber schon lange her...
Member: Mortiis
Mortiis Apr 27, 2006 at 12:00:41 (UTC)
Goto Top
Danke schonmal für die Antwort. Der IIS5 ist aktuell.
Werde versuchen das Ganze mal auf den 6er zu portieren. Wenn sich das Problem dadurch lösen lässt werde ich's gleich posten.

Gruß
Mortiis