Good day Rick,
Our legacy VFP app written with Web Connection 5.53
Recently we stated migration project and for that we installing multiple copies of our websites on the same IIS server for migration testing purposes. Those sites about 90% same with some minor variations / customizations.
When we setup new instance in IIS we basically copy same .exe over and over again to different \inetpub\ subfolders and change name to be unique like app1, app2 and so on to distinguish between different sites. See web.config below attached
This configuration seems to work even so all running .exe are identical / have same COM server signature and the only difference is in path & name.
Problem is that in about every ~5mins or so (it's somewhat random) our apps will hang / freeze. It look's like request (any) getting stuck. After ~60..90 secs that request finally getting processed like nothing happen. This is very consistent and causes major PITA for our QA team and the worst thing we can not figure out what is going on. We initially tried to use COM mode but it takes way too much effort to setup and also requires rebuilding of original project (to get new / unique GUID) so we went with below File setup which we fully automated so we can spin as many test websites as needed. Looked at temp\wcerrors.txt - could not find anything suspicions there
Thank you in advance!
PS Server is EC2 AWS instance
Alex
**web.config**
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
<section name="webConnectionConfiguration" type="System.Configuration.NameValueSectionHandler,System,Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<section name="webConnectionErrorPages" type="System.Configuration.NameValueSectionHandler,System,Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>
<webConnectionConfiguration>
<!-- NOTE: These settings apply only to the Web Connection Managed Module! -->
<add key="Timeout" value="60" />
<add key="PostBufferLimit" value="0" />
<add key="TempPath" value="C:\inetpub\app1\temp\" />
<add key="TempFilePrefix" value="WC_" />
<add key="MessagingMechanism" value="File" />
<add key="AdminAccount" value="" />
<add key="AdminPage" value="/admin/admin.aspx" />
<add key="ExeFile" value="C:\inetpub\app1\app1.exe" />
<add key="UpdateFile" value="" />
<add key="LogDetail" value="True" />
<add key="ValidateRequest" value="False" />
<add key="ComServerProgId" value="eApp.eAppServer" />
<add key="ComServerLoadingMode" value="LoadBased" />
<add key="ServerCount" value="2" />
<add key="AutoStartServers" value="True" />
<add key="MessageDisplayFooter" value="<small>Message generated by Web Connection IIS Connector Module</small>" />
</webConnectionConfiguration>
<system.web>
<compilation defaultLanguage="c#" debug="true">
</compilation>
<trust level="Full" />
<identity impersonate="false" />
</system.web>
<!-- IIS 7 Script Map Configuration -->
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers accessPolicy="Read, Script">
<add name="*.wc_wconnect" path="*.wc" verb="*" type="Westwind.WebConnection.WebConnectionHandler,WebConnectionModule" resourceType="Unspecified" />
</handlers>
</system.webServer>
<webConnectionErrorPages>
<add key="Exception" value="" />
<add key="OleError" value="" />
<add key="Timeout" value="" />
<add key="NoOutput" value="" />
<add key="Busy" value="" />
<add key="Maintenance" value="" />
<add key="InvalidRequestId" value="" />
<add key="TranmitFileFailure" value="" />
<add key="PostBufferSize" value="" />
</webConnectionErrorPages>
</configuration>
Hi Alex,
I suspect the issue is that your application is hanging. Is this happening when the app is not running on the desktop (ie. under SYSTEM or some other user account rather than INTERACTIVE on the main desktop)? File open dialog box perhaps or any other UI operation that effectively hangs the application? In file mode there's unfortunately no way around that issue. In COM mode one can use SYS(2335,0)
(COM Unattended mode) to force errors for UI operations rather than hanging, but in File mode those types of errors open a dialog invisibly and hang.
You can probably test this by running your application(s) interactively on the desktop and check and see what happens when they hang...
This is one of the (many) reasons to run in COM mode as well as the fact that COM Mode will automatically restart servers that are timed out or crash which file mode cannot do.
If you are recompiling your application for each site (ie. unique EXE for each site) then COM can be a pain in the ass for the reasons you mention - you need a unique AppId for each server and getting that right can be an administrative pain. But if you are already building custom EXEs for each app this may not be a lot of extra hassle.
If all the apps can use the same EXE you can change your startup code to change the start folder on load and in that case you may be able to get away with running with a single EXE for all applications and use parameterized settings instead.
+++ Rick ---