Date:  08/18/2006 03:13:19 PM Msg ID:  003108
From:  John Sullivan Thread:  003101
Subject:  Re: ISAPI not working with Abyss Server

Specifically, what would Abyss need to do to get their server to handle FoxWeb ISAPI? I found other people in this forum who have tried to get the Abyss server to work with FoxWeb. It seems CGI can be made to work but the ISAPI cannot be made to work. I really like the ease of setup with the Abyss server plus for $60 the price is great. It does seem speedy with CGI. I will check out Apache.

Thanks,

John Sullivan

Sent by FoxWeb Support on 08/16/2006 09:33:20 AM:
FoxWeb works great with Apache.  Note that Apache also supports ISAPI via its ISAPI Handler, but we have never tested this configuration.  The performance difference between ISAPI and CGI will only be a factor on busy web servers, running efficient scripts (in other words, only if the overhead of starting the script is high relative to the resources required to run the script itself).  For example, if a script takes one second to run, you will not even feel the difference between calling it via CGI or ISAPI.  If on the other hand your server need to process 20 scripts per second, you will definitely get better performance and a smoother-running server with ISAPI.
 
I am not advocating that you use CGI instead of ISAPI.  If your web server supports ISAPI, then by all means you should use it.  I'm just saying that if for some reason ISAPI is not an option, it's not the end of the world for the vast majority of web sites.

FoxWeb Support Team
support@foxweb.com email

Sent by John Sullivan on 08/15/2006 09:49:03 PM:
How well does Apache work with Foxweb? Can you give me so idea of ease of use and performance? I have read the setup in the Foxweb documents but I am not sure about the Apache CGI performance.

Any infomation will be appreciated.

By the way, Abyss seems very nice. Are there any other non Microsoft servers that work with ISAPI?

Is the performance of ISAPI and CGI about the same?


John Sullivan
Sent by FoxWeb Support on 08/15/2006 08:43:33 PM:
FoxWeb works fine with other servers that support ISAPI and most importantly, it works fine with Microsoft IIS.  ISAPI is not a public standard, but rather a proprietary Microsoft protocol, developed specifically for IIS.  It was adapted by other software developers, but in many cases their implementations are incompatible with that of IIS.
 
I am not sure what the problem is in this case, but I can assure you that FoxWeb does call the ISAPI GetServerVariable method to retrieve the values of all servers variables.  If this is not showing up in the Abyss trace log, there may be a different compatibility problem that is affecting FoxWeb earlier in the process.
 
I'm sure that with enough work we could get FoxWeb to work with Abyss, but, given the fact that up until today I had not even heard of this software, I rally can't justify this as a reasonable expense.  Users that want to avoid IIS typically go with Apache, which is open source and free.

FoxWeb Support Team
support@foxweb.com email

Sent by John Sullivan on 08/15/2006 04:07:00 PM:
I have been sucessful in running Abyss X2 with Foxweb but only with CGI. ISAPI does not work. It appears it is a problem with the just the ISAPI module and how it obtains the server name. Can you investigate this problem and provide a fix so I can run the web server with Foxweb?

Persoanlly, I feel we (the Foxweb developers / users) need a server alternative to IIS. The IIS that comes with XP / 2000 is limited in how many web connections it can have at one time. I would rather not purchase Windows Server 2003. The Abyss server is a very good low cost alternative

More info - following is a trace of the ISAPI callabck and they will show that SERVER_NAME or HTTP_HOST is never called. I hope this helps find a solution to the ""No program root has been configured for domain" problem.

ISAPI TRACE

The trace of the callbacks invoked by the ISAPI extension follows:

------------------------
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    New request
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    Prefetch-ReadClient() =
"secSessionID=1VH07DCF31&secUserID=john&secPassword=doe"
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="CONTENT_LENGTH")="54"
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="APPL_MD_PATH")="/"
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="AUTH_TYPE")=""
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="CONTENT_LENGTH")="54"
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="INSTANCE_ID")="1"
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="QUERY_STRING")=""
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="REMOTE_USER")=""
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    GetServerVariable(szVariableName="SERVER_PORT")="80"
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0
ServerSupportFunction(dwHSERequest=HSE_REQ_SEND_RESPONSE_HEADER,
lpvBuffer="200 OK", lpdwDataType="Content-Type: text/html
Cache-Control: private

")
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    WriteClient(Buffer="

<!-- ">" --></p>

<table border=0 cellpadding=1 cellspacing=0 width=100%> <tr> <td colspan=3><hr><b>There was an error during the interpretation of your request.</b><br><br></td> </tr> <tr> <td nowrap><small><b>Message:</b></small></td>
<td></td>
<td><small>No program root has been configured for domain ""</small></td> </tr> <tr> <td colspan=3><hr></td> </tr> </table> ", dwSize=373, dwSync=0)
Module: C:\Inetpub\Scripts\FoxWeb.dll    URI: /examples/Authenticate.fwx
Request #0    HttpExtensionProc() = HSE_STATUS_SUCCESS (1) /
ecb.dwHttpStatusCode = 0
------------------------

In this trace, ISAPI has never requested SERVER_NAME or HTTP_HOST.