I'm having a problem with a Delphi application on some Windows 2003 servers. It uses a webservice call to connect with another server and transmit data back and forth. As soon as the app gets to the Authenticate method, the app dies. The app has worked for years on previous boxes with Win Server 2003, but it doesn't on freshly built machines. The machines are set up the same way for the most part, but there is clearly some config setting that differs that I'm not able to track down. Also, while the error becomes apparent in the call to Authenticate, packet sniffing proves that nothing ever happens between the app and the server it's trying to contact, which strengthens my thoughts that something is dieing early on in setting up the connection. I can't duplicate the error locally, so I can't step through the app in a debugger either. Any thoughts on why an Indy 9 Delphi web connection might silently fail?
Incompatibilities between Indy 9 and Windows Server 2003?
3.1k views Asked by mcmar At
2
There are 2 answers
Related Questions in DELPHI
- How can I read the header of request to webserver
- Receiving Notifications for Individual Task Completion OmniThreadLibrary Parallel.ForEach
- Delphi - How to get result of function from QuickReport without viewing a report?
- Out of memory while adding documents to a Firebird BLOB field with Delphi
- How to MakeScreenshot fullpage on Delphi
- How to program a COM object with an IEnumerator, IEnumerable interface inside
- How to Dynamically Add Controls to Delphi Form
- How to write a string in Stringrid with DelimitedText in FMX Delphi 11
- TGrid/TStringGrid multi cell selection / multi editing in delphi firemonkey (12)
- How to localize "Today" in the Delphi TMonthCalendar?
- How can I call a SOAP webserver method in Vue.js?
- Efficiently Handling Large Number of API Calls with Delphi 10.4 and OmniThreadLibrary
- Delphi can not compile the unit create by its "XML Data Binding Wizard"
- Save Form Properties in File and then restore those Properties after reopening
- Is it possible to open a blob without saving it to file
Related Questions in SOAP
- How can I read the header of request to webserver
- Apache CXF is unable to handle duplicate localnames
- Using SOAP with WSDL in python with the suds-py3 library: Why doesn't it show me anything when I use the following code?
- How can I call a SOAP webserver method in Vue.js?
- Avoid soap fault response (org.apache.cxf)
- Python Zeep XML - 0 float value changes type shape
- Migrate ASMX web method to WCF which accepts string array
- In XSD do you have to import the standard schema in order to use it?
- Problem: Authentication. Project: C++ Onvif manager Deltaco camera
- java.net.ConnectException: Connection timed out: no further information Java to SOAP
- Looking for an API or approach for range based parameter flight pricing using SabreCommandLLSRS
- After upgrading to JDK 11 my SOAP response is different
- Correct way to make a non-blocking delay in Spring WS (SOAP)
- android.os.NetworkOnMainThreadException even using an Aysnc task
- How to send multipart/mime SOAP request
Related Questions in DELPHI-2007
- How to localize "Today" in the Delphi TMonthCalendar?
- "The procedure entry point XXXX could not be located in the dynamic link library YYYY" after migrating application from BDS 2006 to Delphi 2007
- Delphi 2007 IntraWeb times out in production but works as expected on the local development machine
- How to move the cursor to the beginning of the next line on a .txt file?
- How to write more than once in an XML document
- How to get combobox and radio button ''out of focus''?
- Automating a Delphi 2007 application with a Python script - how do I unambiguously reference controls?
- Delphi Porting -> D6 to D2007 - DevExpress - TdxDBGridLayoutList
- How to debug Windows dll from Delphi
- Delphi 2007 Updating a console application from a datamodule using TIdHTTPServer within httpServerCommandGet
- Delphi 2007 JSON array of string to TStringList
- Delphi 2007 - Compile errors on updating Indy from 10.5.1.1 to 10.6.2.0
- StgOpenStorageEx only reads .doc files. Delphi 2007
- Delphi 2007 helper class can't access private method
- Can't detect network drive under Debugger with Delphi 2007 on Windows 10
Related Questions in DEP
- Automatically Assign Default Configuration Profile to New Devices in DEP?
- windows-xp-sp3 disable DEP but stack still can't execute
- Error creating window when Data Execution Prevention is on
- Does the existence of PAGE_EXECUTE_READWRITE as an option in VirtualAlloc mean that the W^X is only facilitated in Windows by DEP?
- gin framework version with dep module on golang return gin version 0.0.0
- How do I enable DEP and ASLR flag for my wpf .net core application?
- How can i write as a csv file for S4 class?
- Github actions, problem with dep installing
- Test app with Android Dynamic Features on a remote device
- Can we enable ASLR, DEP, SafeSEH, Authenticode, Control Flow Guard, and HighEntropyVA to an exe file from VB 6.0 ?? (I am new to VB6)
- Golang cannot find module providing package {PACKAGE_NAME}: working directory is not part of a module
- How can I create simple C++ code that runs fine with no Data Execution Prevention (DEP) but will crash with DEP on?
- GetProcessDEPPolicy says permanent but it's not
- Not able to install latest version of mongo-go-driver (v1.2.1)
- How to compile vegeta through dep of go?
Related Questions in DELPHI-2005
- Form creates 2 Frames - How to call procedure in Frame 2 from inside Frame 1?
- Text Method doesn't work with Findclass(...) but with plain "TEdit"
- Installing Delphi 2005 TChart
- Delphi 2005 freezes where entering a sql line
- DELPHI: Declare HTTPRIO.OnBeforeExecute in TComponent
- DELPHI: WSDL Import Error
- DELPHI: RIO OnBeforeExecute
- DELPHI: "Invalid property element: System"
- ADODB component causes access violation on Win7/Server 2008
- Referencing 3rd party components in Delphi 2005
- execute delphi web service from browser
- rtl90.bpl was not found, how do I include it in my Delphi 2005 win 32bit app?
- How to debug Delphi IDE?
- AaWiz VCL Component Migrated from Delphi 5 to Delphi 2005
- Can I find out what, in a 3rd-party VCL component, is causing Delphi IDE to stop responding when I close a project containing that component?
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Here's where it was blowing up:
Solution found! It turned out to be DEP (Data Execution Prevention). When I re-built our code with Delphi2007 soap libraries, the probelm went away. Since I didn't want to do that (de-serialization caused problems that made the server choke on our XML), and my mgr really didn't want to do that (involved extensive regression testing), I looked for differences between the SOAP source code between D2005 and D2007, with the idea of making a targeted change on whatever was different between the two. i.e find the difference that makes a difference. Beyond Compare was my buddy here. One change kind of stood out as being odd - the RIO.PAS now includes a new unit PrivateHeap.pas. Wondering why, I googled and found a similar problem with an explanation that seemed to be right on target.
Bingo! Now here's where it gets tricky. The DEP has always been enabled on our servers. So at first, this seemed like it wasn't likely. But DEP is tricky, and newer hardware is more capable than the older hardware. So I think we got away with DEP issues in the past, and now the newer hardware is tripping us up. Our server admin flipped DEP protection off (for 3rd-party apps), rebooted, and our old code worked! While we'll eventually move to the newer libraries, this will be a great short-term fix for us as it lets us avoid having to regression test this app that works fine otherwise.
So to summarize: Our Delphi2005 app was crashing on newly-built Windows2003 servers due to Data Execution Prevention (DEP) interfering with the creation of the HTTPRIO object. The RIO would be created without exception, appeared valid. But when the associated IInvokable object was used, it would throw an access violation, prior to attempting to communicate on the wire at all. Kudos to our cooperative and very patient admins, fellow dev Mcmar, Beyond Compare, and Jean-Marie Babet.