Subject | RE: [IBO] Old Delphi apps under Windows Server 2012 |
---|---|
Author | IBO Support List |
Post date | 2013-10-31T21:47:27Z |
Geoff,
I just wanted to say thank you for sharing this kind of information with
the list.
Also, it's great to hear from you, as always!
Jason
www.ibobjects.com
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of Geoff Worboys
Sent: Sunday, October 27, 2013 3:08 AM
To: IBObjects
Subject: [IBO] Old Delphi apps under Windows Server 2012
Hi All,
Having just spent a long time working this out, I thought I
would share the results here in the hope it may save some
time for others.
A client was setting up some new terminal servers, intending
to migrate from Windows Server 2003 to Windows Server 2012.
My old application - built with Delphi v6 and IBO v4.8, was
constantly crashing on this new terminal server. Long story
cut very short, the problem is SEHOP.
You can read about it here:
http://support.microsoft.com/kb/956607
The discussed setting, DisableExceptionChainValidation,
is by default not defined in Windows 8 - which apparently
means it is disabled (as if set to 1). Windows Server 2012
has this explicitly set to 0. Set it to 1 and the program
crashes no longer happen. (So the program will happily work
under Windows 8 and yet fail under Windows Server 2012 until
you change this setting.)
You, or your client, may prefer to disable SEHOP for just
the program you have installed. In which case you need a
setting like this (assuming it is 32bit):
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\
Current Version\
Image File Execution Options\
myprogram.exe\
DisableExceptionChainValidation = 1
(You can see similar settings under the Image File Execution
Options branch of the registry. Apparently a value of 3 has
(as you see on some definitions) a particular meaning, but for
my old Delphi program I needed a value of 1.)
More info can be found here:
https://blogs.technet.com/b/srd/archive/2009/11/20/sehop-per-process-opt-in-
support-in-windows-7.aspx
(Note, that article is about opting in with Windows 7, under
Windows Server 2012 you have to opt out.)
I have not tried to discover exactly what versions of Delphi
will experience this problem, I can only tell you that mine
was compiled with Delphi v6. It is possible the problem may
also exist under Windows Server 2008, but I haven't got a copy
of that to look at.
--
Geoff Worboys
Telesis Computing Pty Ltd
------------------------------------
___________________________________________________________________________
IB Objects - direct, complete, custom connectivity to Firebird or InterBase
without the need for BDE, ODBC or any other layer.
___________________________________________________________________________
http://www.ibobjects.com - your IBO community resource for Tech Info papers,
keyword-searchable FAQ, community code contributions and more !
http://tracker.ibobjects.com - your portal to submit and monitor bug reports
http://community.ibobjects.com - your portal to purchase and upgradeYahoo!
Groups Links
I just wanted to say thank you for sharing this kind of information with
the list.
Also, it's great to hear from you, as always!
Jason
www.ibobjects.com
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of Geoff Worboys
Sent: Sunday, October 27, 2013 3:08 AM
To: IBObjects
Subject: [IBO] Old Delphi apps under Windows Server 2012
Hi All,
Having just spent a long time working this out, I thought I
would share the results here in the hope it may save some
time for others.
A client was setting up some new terminal servers, intending
to migrate from Windows Server 2003 to Windows Server 2012.
My old application - built with Delphi v6 and IBO v4.8, was
constantly crashing on this new terminal server. Long story
cut very short, the problem is SEHOP.
You can read about it here:
http://support.microsoft.com/kb/956607
The discussed setting, DisableExceptionChainValidation,
is by default not defined in Windows 8 - which apparently
means it is disabled (as if set to 1). Windows Server 2012
has this explicitly set to 0. Set it to 1 and the program
crashes no longer happen. (So the program will happily work
under Windows 8 and yet fail under Windows Server 2012 until
you change this setting.)
You, or your client, may prefer to disable SEHOP for just
the program you have installed. In which case you need a
setting like this (assuming it is 32bit):
HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows NT\
Current Version\
Image File Execution Options\
myprogram.exe\
DisableExceptionChainValidation = 1
(You can see similar settings under the Image File Execution
Options branch of the registry. Apparently a value of 3 has
(as you see on some definitions) a particular meaning, but for
my old Delphi program I needed a value of 1.)
More info can be found here:
https://blogs.technet.com/b/srd/archive/2009/11/20/sehop-per-process-opt-in-
support-in-windows-7.aspx
(Note, that article is about opting in with Windows 7, under
Windows Server 2012 you have to opt out.)
I have not tried to discover exactly what versions of Delphi
will experience this problem, I can only tell you that mine
was compiled with Delphi v6. It is possible the problem may
also exist under Windows Server 2008, but I haven't got a copy
of that to look at.
--
Geoff Worboys
Telesis Computing Pty Ltd
------------------------------------
___________________________________________________________________________
IB Objects - direct, complete, custom connectivity to Firebird or InterBase
without the need for BDE, ODBC or any other layer.
___________________________________________________________________________
http://www.ibobjects.com - your IBO community resource for Tech Info papers,
keyword-searchable FAQ, community code contributions and more !
http://tracker.ibobjects.com - your portal to submit and monitor bug reports
http://community.ibobjects.com - your portal to purchase and upgradeYahoo!
Groups Links