We are replacing our legacy Cobol security programs with a new Security System which runs as a Web Service. Working with legacy code, I have an unmanaged cobol subroutine (SUBR01) that is compiled as a GNT. This, in turn, calls a DLL (DLL01), registered as a COM object, written in C#, which calls another DLL (DLL02) which acts as a Web Interface to the Security System service. This way I have a nicely encapsulated way to call the Security System from any legacy Cobol program.
The problem I’m running into is this: When I call SUBR01 from an unmanaged Cobol console app, it works fine. However, when I run it from a web program, also written in unmanaged Cobol, it hits DLL01 fine but when DLL02 tries to access it’s config file, it throws an error “System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.ArgumentException: Illegal characters in path.” It seems like the messaging between DLL01 and DLL02 is somehow getting garbled or corrupted.
I’ve also tried calling DLL01 directly from the web program, removing the GNT from the picture, and still received the same error.
I would give you a list of things that we’ve tried and failed, but we’ve been fighting this for the better part of two weeks with no success, and the list would probably run for 10 pages. Suffice to say, we’ve tried changing both the cobol and C# modules and nothing has worked.
So I guess the first question is … is what I’m trying to do even possible? What’s so different between a console app and a web app that would garble the messaging? Is there something that we need to set in IIS 7.0 for either the web site or the app pool so that this will work? If is there a compile option that I’m missing (I have the “OOCTRL( P)” option in both the web program and SUBR01)? Has anyone even tried a set-up like I outlined above? Do I need to write DLL01 in cobol rather than C#? I’m desperate for any ideas that I can try?