Skip to main content

 none
looking for framework / architecture: WCF or something else? RRS feed

  • Question

  • Hi community,

    I need some general advice if I am on the right path or if I'm heading towards a dead end.

    Background:

    • An application that manages (starts/stops) other local applications, I'll call it AppStarter.
    • Several other local applications (I'll call them calc.exe and notepad.exe as an example) that must be started with certain command line parameters
    • Infrstructure: Windows Server 2012 R2 / DotNet 4.7.1 / Visual Studio 2017

    Current status:

    • The "AppStarter" is a classic GUI application that runs in a session of a dedicated application user.
    • Interaction requires someone to log on to that machine via Remote Desktop.
    • When the "AppStarter" is launched, it connects to an Oracle database and reads which applications are configured for that host. Respective buttons are prepared on the Windows form.
    • When a "start notepad #1" button is clicked, it executes something like "notepad.exe c:\file001.txt" with the Shell command, remembers the return code (PID) and stops it again at when the "stop notepad #1" button is clicked.

    Wishlist:

    • Get away from the GUI application that requires RDP logon to every single machine
    • => Make the "AppStarter" remote-controllable
    • Nevertheless allow someone to log on to the machine, open an "AppStarterStatus" application and check/manage the status of the running instances of Calc and Notepad.

    For me the obvious solution would be a Windows service. So far so good, but how do I "communicate" with that "AppStarterService"? I've had a close look at the "WCF service hosted by a Windows service" concept and it looks almost good. A major problem is that I communicate with the WCF service and that tends to be "volatile" (or "stateless", for lack of better words), which means that it does not remember the PIDs of the launched applications. That makes it a no-go, I *need* the PID (and other config parameters) to remain in memory. I've read about "System.Runtime.Caching" but don't know how reliable that is: Cache (for my definition) is not permanent.

    Does anyone have a grand idea to point me in the right direction? Of course I'm not looking for finished code, only for some thoughts or keywords that might help me.

    Thanks alot in advance

    --bjoern

    • Moved by Hart Wang Wednesday, April 11, 2018 6:48 AM wcf issue
    Tuesday, April 10, 2018 3:15 PM

All replies

  • Hi,

    Thank you for posting here.

    Since your issue is related to WCF, I will move the case to wcf forum.

    Best Regards,

    Hart


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    Wednesday, April 11, 2018 6:47 AM
  • Since it's a WCF service hosted by a Windows service and the WCF client hosted by what I would assume is a Windows forms solution with Windows form WCF client and WCF service hosted by Windows service running on the same machine, then I don't see why you couldn't use a file system between the two, like XML or Json to hold data for state reasons.  

    You could just have a selfhosting WCF service, an exe, and not even use a Windows service to host a WCF service.

    Wednesday, April 11, 2018 4:19 PM