Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
MTS - Usability
Message
 
To
08/10/1998 00:23:27
Eric Barnett
Barnett Solutions Group, Inc
Sonoma, California, United States
General information
Forum:
Visual FoxPro
Category:
Internet applications
Title:
Miscellaneous
Thread ID:
00128652
Message ID:
00144916
Views:
33
>I did actually try returning an object that had an array as a property but got the same problem. However, through different testing I found a potential error in one of my method calls when two simultaneous calls were made. The difference seems to be that when running as an EXE, the error (which I trap for using COMRETURNERROR()) gets passed back properly. As a DLL picked up by MTS, it trashes ASP. I think this is what they mean by "process isolation". I should know for sure by tomorrow.

I haven't had much luck with MTS process isolation in IIS - it doesn't work
on any of my machines. Furthermore when I did have it working a while back
there were all sorts of weird things happening related to COM from resource
leaks to Strucuture Storage errors. When I was debugging some of my ISAPI
extensions all of the sudden the stack would get corrupted, other times any
heap allocated memory simply disappeared. Don't trust 'application' space
is my recommendation. If you have weird inconsistent problems try taking
your virtual out of a private application space into the global ISAPI
segment and see if that will help stability.

As to COMRETURNERROR - I personally don't think this is a good call especially
for ASP since it has such a limited way of dealing with errors. I prefer
to handle my own errors and then set an error flag in the object or have
methods that return error results (similar to API or COM interface calls) rather
than trying to raise an error in the client. Not always the best route,
but certainly makes sense to me with ASP. Can't say I have looked at
COMERRORRETURN closely though <s>...

>By the way regarding CreateObject vs. Server.CreateObject: CreateObject alone is (I believe) older VBScript syntax. The difference seems to be that it creates the object in the thread that calls the CreateObject instead of using the pool provided by ASP/MTS. The way I can tell this is because I use an ODBC connection in the object I keep talking about. When I look at the current activity using Server.CreateObject, the "owner" of the activity is Transaction Server Explorer. When I use CreateObject alone, the owner is "sa" - the login.
>This may have an interesting implication or two.

I didn't even know you can use CreateObject alone, but I'm guessing you're
not supposed to, because I've never actually seen this used. I would guess
this has to do with handling timeouts and some sort of pooling of threads
to make sure that you don't overload your server.

ASP changes the security context when you use Server.CreateObject, because
otherwise you'd never be able to access anything - I can't remember offhand
how this worked, although what you're seeing seems certainly backwards. It
may be that you've given your IUSR_ account ADMIN rights - if you didn't
you probably couldn't use the connection with the plain CreateObject, but
you could with Server.CreateObject because the context is changed.

>By the way, if you decided not to use ASP/VFP, what did you decide on? FOXISAPI, VB, whatever? I'm going to check out some of your company's products as well.

Well, I'm biased, so don't ask me. I use Web Connection in most cases, but I
use ASP with C++ ATL a bit as well - some pure ISAPI stuff too for low level
stuff.

+++ Rick ---
+++ Rick ---

West Wind Technologies
Maui, Hawaii

west-wind.com/
West Wind Message Board
Rick's Web Log
Markdown Monster
---
Making waves on the Web

Where do you want to surf today?
Previous
Reply
Map
View

Click here to load this message in the networking platform