Object required global.asa error: Difference between revisions

From DataFlex Wiki
Jump to navigationJump to search
New page: After migrating a web application from an earlier version as VDF12 you might get some error while trying to run the application for the first time. If you get an error along the lines of: ...
 
mNo edit summary
Line 12: Line 12:
  <OBJECT RUNAT=Server SCOPE=Session ID= PROGID="WebAppServer.WebBusinessProcess.12.1">
  <OBJECT RUNAT=Server SCOPE=Session ID= PROGID="WebAppServer.WebBusinessProcess.12.1">
  </OBJECT>
  </OBJECT>
// Watch the missing ID= bit //
''Watch the missing ID= bit''
 
or no declaration at all.
or no declaration at all.
Then in the Session_OnStart sub section you are likely to find this line:
Then in the Session_OnStart sub section you are likely to find this line:
Line 25: Line 26:
Now things work differently, so we need to adjust the troubleshooting steps.
Now things work differently, so we need to adjust the troubleshooting steps.


First thing you should look for is any issues in the Problem Resolution Panel. // verify the context menu to see that "Filter Warnings" is not checked // If there are complaints in the panel fix them and try compiling afterwards.
First thing you should look for is any issues in the Problem Resolution Panel. '' verify the context menu to see that "Filter Warnings" is not checked ''
If there are complaints in the panel fix them and try compiling afterwards.


What if you still have this problem? Well it could be something else.
What if you still have this problem? Well it could be something else.

Revision as of 21:16, 13 March 2008

After migrating a web application from an earlier version as VDF12 you might get some error while trying to run the application for the first time. If you get an error along the lines of:

Error Type: Microsoft VBScript runtime (0x800A01A8)
Object required: 'oOrder' /Order/global.asa, line 124

I might have an answer for you.

First thing to do of course is to open the global.asa file. Our web application isn't able to map the VBscript object oOrder against our WebBusiness Process called oOrder. So we expect to find this:

<OBJECT RUNAT=Server SCOPE=Session ID=oOrder PROGID="WebAppServer.WebBusinessProcess.12.1">
</OBJECT>

and you might find this:

<OBJECT RUNAT=Server SCOPE=Session ID= PROGID="WebAppServer.WebBusinessProcess.12.1">
</OBJECT>
Watch the missing ID= bit 

or no declaration at all. Then in the Session_OnStart sub section you are likely to find this line:

.Name="oOrder"

or this one:

.Name=

instead of this: oOrder.Name="oOrder"

So what happened? The Studio in these days parses your sources in order to decide what to write to the global.asa file and how. In the good ol' days you would open the abdata file, search for the missing entry in question, fix it and begone with it. Now things work differently, so we need to adjust the troubleshooting steps.

First thing you should look for is any issues in the Problem Resolution Panel. verify the context menu to see that "Filter Warnings" is not checked If there are complaints in the panel fix them and try compiling afterwards.

What if you still have this problem? Well it could be something else. Let's make it easier for the parser and -instead of having it merge its results into an existing global.asa- feed it with an empty one. Rename your global.asa file and copy a fresh one from your VDF .\Lib folder to your application's \AppHtml folder. Try compiling again to see it is fixed. (It probably is)

Still the same problem? Hmm.. you are not having multiple WebBusinessProcess objects in one file? Check your subclass settings if you are using these under Tools > Configure Workspace.

note

Also beware that webservices no longer need an entry in the global.asa file. So if they are missing, then it is perfectly normal. Check the .wso file of the service in a texteditor if it is not working. This line might look like

Application=RenameThisSomething

and should be the same as the setting in your global.asa

<snip>
...
 WebAppServerSession.Initialize("YourAppName")
...
</snip>

so it should be:

Application=YourAppName