It isn't going to be easy, performant, nor reliable. Basically, there is no
way to pipe the output of your DLL file to be the input of something else,
like ASP, to execute (ASP executes scripts from filesystem files). You have
to write the output temporarily to disk and make ASP load that file from
disk. Now, be careful with the name of the temporary file -- they cannot
collide, or you have concurrency issues.
1. [Make ASP handle invocations of your special URL] ISAPI Filter which
intercepts such URLs (you figure out how to intercept it) in
SF_NOTIFY_PREPROC_HEADERS and parses out the filename containing embedded
XML data. If you need site-specific info (like the actual physical path to
the file that corresponds to the request), use the SF_NOTIFY_AUTH_COMPLETE
event. Make sure to rewrite the URL using SetHeader("url") so that the
request now goes to ASP (i.e. ending with .asp extension).
2. [Use your DLL to process the original file and dump output to a temporary
file] Load the "seac-browser.dll" file and get it to process the filename
from #1 and dump its contents to a temporary filename on disk. This is
usual Win32 programming. You may have to modify "seac-browser.dll" to dump
the response to disk instead of sending it as a response.
3. [Make ASP load your temporary file] ISAPI Filter which intercepts the
SF_NOTIFY_URL_MAP event and maps pszPhysicalPath to the temporary filename
from #2 every time it sees pszUrl equal to the .asp URL in #1 .
--
//David
IIS
This posting is provided "AS IS" with no warranties, and confers no rights.
//
"Eric" <anonymous.TakeThisOut@discussions.microsoft.com> wrote in message
news:22F37B0C-7E6B-433D-A3A4-BC83D4A4EAD2@microsoft.com...
I'm trying to resolve a problem with a dll that i'm using to parse some xml
data (embedded in an html file). The dll is invoked by calling it directly
such as
http://123.45.6.789/seac/bin/seac-browser.dll?filename. The dll
file replaces the xml tags with data and returns the page. If I pass an asp
file IIS will not parse the asp. I'm assuming the dll is just writing to std
out and IIS is just returning the page.
Can I create a filter or extension that will intercept this file after the
dll is done with it and invoke ASP.dll or somehow call the ASP.dll from my
seac-browser-dll with the page?
An example would be greatly appreciated.
thanks
Eric