Web Connection
Upgrade Wc from 6.21 to 8.1 - No output return
Gravatar is a globally recognized avatar based on your email address. Upgrade Wc from 6.21 to 8.1 - No output return
  Marcel DESMET
  All
  Oct 18, 2024 @ 10:03am

Running in com mode on the first load of the com no Output is returned When i refresh the browser it's ok

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Rick Strahl
  Marcel DESMET
  Oct 18, 2024 @ 07:30pm

Not sure but shouldn't happen.

Make sure your error handling is working. I suspect you're getting an error and your error handler is... erroring πŸ˜„. That's the most likely scenario for no output (or the request really returns no data).

+++ Rick --

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Marcel DESMET
  Rick Strahl
  Oct 18, 2024 @ 11:35pm

Hello,

My code is error free and run error free with WC 6.21, every code error is logged
I think it has something to do with the load of the COM, one second later everthing is ok But on the first click ( on the browser side ) the message "No output returned" is instantaneous there is no waiting time

Here is the error in wcerrors.txt

2024-10-19 11:17:44.125 - 3464124146916147_80 - *** Com Server ProcessHit Error: Server not available, trying to reload: Le serveur RPC n’est pas disponible. (Exception de HRESULT : 0x800706BA) (800706ba) Time: 0,00ms - /greenshop/fr/processconfig.jaz 2024-10-19 11:17:46.732 - 3464124146916147_80 - No output returned - /greenshop/fr/processconfig.jaz

Tks Marcel

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Rick Strahl
  Marcel DESMET
  Oct 19, 2024 @ 08:53am

Not sure - I can't duplicate that behavior.

Is it duplicatable? Local development? On your server? How many instances? If you're using many start with a few first then work up (which would isolate a potential load timeout).

A few things to check:

  • Make sure you have the latest version (8.1 - check Administration.wc)
    Very early releases of v8.0 had a few small problems and if I recall this was one of them.

  • Make sure your server is compiled correctly (Single Use EXE)
    Anything else isn't supported or tested.

  • If all else fails: Create a new project to test behavior
    Create a new Web Connection project, compile it to COM and run as a COM server. Same behavior?

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Marcel DESMET
  Rick Strahl
  Oct 19, 2024 @ 09:06am

Hello, It seems that the WC 8.1 no longer compatible is with the way I work. COM mode work's as described above and file mode doesn't run any more

*** Configuration class for the GreenwebProcess Process class
DEFINE CLASS GreenwebProcessConfig as wwConfig

cHTMLPagePath = "c:\WebConnectionProjects\Greenweb\Web\Greenweb"
cDATAPath = "c:\WebConnectionProjects\Greenweb\data"
cVirtualPath = "/Greenweb/"

ENDDEFINE

The webservers are running with 5 applications (WebShop (.jaz), Blog (.blog), Forum (.frm), Products (.jazz), Data administration *.appl) using same code in "c:\WebConnectionProjects\greenweb\deploy".

Each server as is own directory and web.config in c:\WebConnectionProjects\greenweb\web\serverXX etc ....

When running in file mode a deploy directory is created in the wrong place to report a error, running in COM mode errors are reported in the good place c:\WebConnectionProjects\greenweb\deploy\temp

Here is the error

PHYSICAL_PATH=C%3a%5cWebconnectionprojects%5cGreenWeb%5cweb%5cgreenweb%5ctestpage.sys&QUERY_STRING=&SCRIPT_NAME=%2fgreenweb%2ftestpage.sys&REQUESTID=639863735582_152&DLLVERSION=Web+Connection+Handler+8.1.2+(.NET+Handler)++&WCCONFIG=C%3a%5cWebconnectionprojects%5cGreenWeb%5cweb%5cgreenweb%5cweb.config&ADMIN_PAGE=%2fgreenweb%2fadmin%2fadmin.aspx&APPL_WEB_PATH=http%3a%2f%2flocalhost%2fgreenweb&APPL_MD_PATH=%2fLM%2fW3SVC%2f1%2fROOT%2fgreenweb&APPL_PHYSICAL_PATH=C%3a%5cWebconnectionprojects%5cGreenWeb%5cweb%5cgreenweb%5c&AUTH_TYPE=NTLM&AUTH_USER=DESKTOP-9MVQ9H9%5cMarcel&AUTH_PASSWORD=&LOGON_USER=DESKTOP-9MVQ9H9%5cMarcel&REMOTE_USER=DESKTOP-9MVQ9H9%5cMarcel&CERT_COOKIE=&CERT_FLAGS=&CERT_ISSUER=&CERT_KEYSIZE=&CERT_SECRETKEYSIZE=&CERT_SERIALNUMBER=&CERT_SERVER_ISSUER=&CERT_SERVER_SUBJECT=&CERT_SUBJECT=&CONTENT_LENGTH=0&CONTENT_TYPE=&GATEWAY_INTERFACE=CGI%2f1.1&HTTPS=off&HTTPS_KEYSIZE=&HTTPS_SECRETKEYSIZE=&HTTPS_SERVER_ISSUER=&HTTPS_SERVER_SUBJECT=&INSTANCE_ID=1&INSTANCE_META_PATH=%2fLM%2fW3SVC%2f1&LOCAL_ADDR=127.0.0.1&PATH_INFO=%2fgreenweb%2ftestpage.sys&PATH_TRANSLATED=C%3a%5cWebconnectionprojects%5cGreenWeb%5cweb%5cgreenweb%5ctestpage.sys&REMOTE_ADDR=127.0.0.1&REMOTE_HOST=127.0.0.1&REMOTE_PORT=50872&REQUEST_METHOD=GET&SERVER_NAME=localhost&SERVER_PORT=80&SERVER_PORT_SECURE=0&SERVER_PROTOCOL=HTTP%2f1.1&SERVER_SOFTWARE=Microsoft-IIS%2f10.0&URL=%2fgreenweb%2ftestpage.sys&HTTP_CONNECTION=keep-alive&HTTP_ACCEPT=text%2fhtml%2capplication%2fxhtml%2bxml%2capplication%2fxml%3bq%3d0.9%2cimage%2favif%2cimage%2fwebp%2cimage%2fpng%2cimage%2fsvg%2bxml%2c*%2f*%3bq%3d0.8&HTTP_ACCEPT_ENCODING=gzip%2c+deflate%2c+br%2c+zstd&HTTP_ACCEPT_LANGUAGE=en-US%2cen%3bq%3d0.5&HTTP_COOKIE=GREENSHOP%3d7AZiGtBhY6bing71%3b+_ga_4YTGKTLEXZ%3dGS1.1.1729347418.275.1.1729348621.58.0.0%3b+_ga%3dGA1.1.904273704.1679135213%3b+language%3dfr%3b+_ga_WXPFEFR1S7%3dGS1.1.1729343064.223.1.1729343167.0.0.0%3b+_uetvid%3d865981d0d7ba11ed88298586bca358c1%3b+_clck%3d1cnti9%257C2%257Cfq5%257C0%257C1230%3b+jj_acceptCookies%3dtrue%3b+_gcl_au%3d1.1.1140251554.1723887350%3b+PROFILAGE%3dkhNBVShgVCq79AH6%3b+MARCEL%3dITjdYGReuAwdk0yW%3b+JAZZJUICERS%3dQ9W49j8hkD3yiVcA%3b+_uetsid%3d6b7357408d5511efbf022ffaf6fc087d%3b+_clsk%3d15b8ro9%257C1729348622139%257C5%257C1%257Cw.clarity.ms%252Fcollect&HTTP_HOST=localhost&HTTP_USER_AGENT=Mozilla%2f5.0+(Windows+NT+10.0%3b+Win64%3b+x64%3b+rv%3a131.0)+Gecko%2f20100101+Firefox%2f131.0&HTTP_UPGRADE_INSECURE_REQUESTS=1&HTTP_SEC_FETCH_DEST=document&HTTP_SEC_FETCH_MODE=navigate&HTTP_SEC_FETCH_SITE=none&HTTP_SEC_FETCH_USER=%3f1&HTTP_PRIORITY=u%3d0%2c+i&Output+File=C%3a%5cWebconnectionprojects%5cGreenWeb%5cweb%5cdeploy%5ctemp%5cWC_639863735582_152.out& #@$ FORM VARIABLES $@#

It's seems the location of web.config don't read the cHTMLPagePath property of the config file ( edit config is disabled )

Tks Marcel

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Marcel DESMET
  Rick Strahl
  Oct 19, 2024 @ 09:16am

Yes I do the test with a new project to test the behavior

The are also small bugs in the web.config file when you ask to create a project with multiples extensions

Tks Marcel

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Rick Strahl
  Marcel DESMET
  Oct 19, 2024 @ 10:48am

The new project structure is very specific to a single server/site setup. It's possible to use it with multiple or multi-tenant sites, but not out of the box. The project will create it's own structure and if you want to use this auto-configured environment you have to stick to the default format it creates. If you move stuff around things are no longer automatic and will break unless you fix the configuration to match the changes.

What I'm asking you to do is not try to port your project - I'm asking you to create a new empty project, run it and see if that works to verify whether there is a real problem or something that is introduced due to your specific setup and configuration.

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Rick Strahl
  Marcel DESMET
  Oct 19, 2024 @ 11:01am

The webservers are running with 5 applications (WebShop (.jaz), Blog (.blog), Forum (.frm), Products (.jazz), Data administration *.appl) using same code in "c:\WebConnectionProjects\greenweb\deploy".

That's a very unconventional setup and that's not supported out of box. It can work but you have to configure for it.

Not sure what you mean by *'The webservers are running with 5 applications (WebShop (.jaz), Blog (.blog), Forum (.frm), Products (.jazz), Data administration .appl) using same code in "c:\WebConnectionProjects\greenweb\deploy".' If you're running 5 applications as COM off the same EXE/codebased, doing this with COM is super complicated and nothing in that process has really changed over the years.

cHtmlPagePath is a fallback value that is only used if the base path cannot be determined by what the Web server provides. It was never used verbatim for determining anything beyond the fallback value or for your own use in your application code. Web Connection uses the APPL_PHYSICAL_PATH server variable to determine the site base path based on the incoming request.

There's only one place in the Web Connection codebase where this path is used:

* wwRequest::GetApplicationPath
FUNCTION GetApplicationPath()

IF EMPTY(this.cApplicationPath)
    *** IIS provides the Application base path
	this.cApplicationPath = ADDBS( THIS.ServerVariables("APPL_PHYSICAL_PATH") )	   
	
	*** if not use app.ini setting variable from process
	IF EMPTY(this.cApplicationPath) AND TYPE("Process.oConfig") = "O"
		this.cApplicationPath = ADDBS(Process.oConfig.cHtmlPagePath)
	ENDIF
ENDIF 
RETURN this.cApplicationPath
ENDFUNC

Which is used for root folder lookups and Process.ResolvePath() and ~ physical path resolution.

All other uses are application specific and that's what the value is there for, really. The value was primarily created for non-IIS and very old IIS servers that don't return the base path with the application.

This hasn't changed for a very long time and certainly not since v6 (I think the last time this behavior changed was likely in v4).

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Marcel DESMET
  Rick Strahl
  Oct 19, 2024 @ 10:10pm

That's a very unconventional setup and that's not supported out of box. It can work but you have to configure for it.

It was your idea πŸ˜ƒ


					CASE lcExtension == "JAZ"
						DO Store_process WITH THIS

					CASE lcExtension == "JAZZ"
						DO Products_process WITH THIS

					CASE lcExtension == "APPL"
						DO Application_process WITH THIS

		      		CASE lcExtension == "BLOG"
		         		DO Blog_Process with THIS

					CASE lcExtension == "FRM"
						DO Forum_Process WITH THIS

If you're running 5 applications as COM off the same EXE/codebased

Each server has its own exe ( and project file ) that use the same code only the startup.prg is different I only add one parameter on your code

DO GreenWebMain.prg  WITH lcAction, lvParm1, lvParm2, "GreenWebShopsServer"

Create a new project to test behavior

That's what I do. The only thing to do to reproduce the error's is to move the Html files from

web\*.html,*.jazz etc...     to      web\myserver\*.*

Of course you have to change web.config etc.. data for the new path

Tks

Marcel

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Rick Strahl
  Marcel DESMET
  Oct 21, 2024 @ 11:03am

Each server has its own exe ( and project file ) that use the same code only the startup.prg is different I only add one parameter on your code

Ah ok... yeah that's fine. That's just not what the typical user will come up with in this situation. Sharing a single EXE (and COM ids) for multiple apps is complicated - I don't recall this conversation, but I've helped a couple of customers set this up and it's no fun. It's very easy to screw something up in the process - the only good solution is what you're doing: Separate projects with separate COM IDs separately compiled and deployed as essentially completely separate apps even though they effectively run the same code base.

That's what I do. The only thing to do to reproduce the error's is to move the Html files from

Not sure I understand. You're saying using the stock configuration there's no problem (ie. directly in the /web folder). But it breaks if you map to a sub-folder and then it breaks on the first request?

Can you log your inbound folder configuration in wwProcess::OnInit()?

Log out:

  • THIS.oRequest.GetPhysicalPath()
  • THIS.oRequest.GetApplicationPath()

And what are you doing for your first request exactly? Response.ExpandScript/Template, manual output? And what exactly are you doing for the configuration?

Are all of these EXEs running in their own Web application folders/virtuals?

+++ Rick ---

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Marcel DESMET
  Rick Strahl
  Oct 21, 2024 @ 08:44pm

Hello,

I don't recall this conversation

You are right we don't have a conversation about multiserver on same code, you idea is the multiscript map. Multiserver on same code is my own work

Can you log your inbound folder configuration in wwProcess::OnInit()?

Here is my code, each MyServer.exe has is own configuration MyServer.ini



	PROTECTED FUNCTION OnInit

		THIS.oConfig = CREATEOBJECT(THIS.cConfig)
		THIS.cAppIniFile = ADDBS(THIS.cAppStartPath) + ALLTRIM(THIS.cAppName) + ".ini"
		
		WITH THIS.oConfig
			.cRootPath = STRTRAN(ADDBS(LOWER(THIS.cAppStartPath)),"deploy\","")
			.cSystemFilesDataPath = THIS.oConfig.cRootPath + "SystemData\"
			.cFileName = THIS.cAppIniFile
		ENDWITH 
		
	ENDFUNC

Not sure I understand. You're saying using the stock configuration there's no problem (ie. directly in the /web folder). But it breaks if you map to a sub-folder and then it breaks on the first request?

Yes first request in COM mode breaks on the first request and then it works. It does not work in file mode. Maybe I miss something when I updated the config files manually it would be a good news if it run on a web subfolder on your side

And what are you doing for your first request exactly? Response.ExpandScript/Template, manual output?

RESPONS.ExpandTemplate()

Are all of these EXEs running in their own Web application folders/virtuals?

Yes

I also recently found a Bug in merge text ( after using it for 20 years... ). It loops when passing a variable other than a character.

Tks

Marcel

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Rick Strahl
  Marcel DESMET
  Oct 22, 2024 @ 08:04am

If it doesn't work in file mode you should be able to step through and see what's happening.

I have no idea because I can't duplicate your scenario (since I still don't understand what you're actually doing). If you create separate script maps the scriptmaps work for the entirety of the virtual/application.

You still haven't answered my question. If you create a new project and run as is (without any of your path customization) does that work on first hit? IOW - no errors? If it does then the issue is related to how you are routing requests or setting up the paths.

If it happens in file mode you should be able to step through with the debugger and see where the code gets the blank result. You can set breakpoints in your application code to see if those requests are reached in the first place. If not you'll have to debug in wwProcess::Process(), wwProcess::RouteRequest() and wwProcess::CompleteResponse().

+++ Rick --

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Marcel DESMET
  Rick Strahl
  Oct 22, 2024 @ 10:37am

I do a new setup again and it work's by moving all the web directory contents to a web subdirectory simply by updating the deploy path in Web.config

I'm going to integrate my code in a more progressive way to understand what didn't work.

Thank you for your help !

Marcel

Gravatar is a globally recognized avatar based on your email address. re: Upgrade Wc from 6.21 to 8.1 - No output return
  Rick Strahl
  Marcel DESMET
  Oct 22, 2024 @ 01:07pm

Oh good! πŸ˜„

+++ Rick ---

© 1996-2024