Winforms - Registrer en DDE-server i en Windows Forms-applikation versus et konsolprogram

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg skal registrere en DDE-server i en Windows-form i modsætning til et konsolprogram. Jeg har prøvet registreringskoden på forskellige punkter i Windows Form Application, men det synes ikke at være registreret. Jeg har prøvet det i frmMain og Program.cs Main ().


Når jeg forsøger at få DDE-serveren, får jeg standarden til at forbinde besked: 'MainForm\_Load: Klienten kunne ikke oprette forbindelse til' CRMIntegrator | myservice '. Sørg for, at serverprogrammet kører, og at det understøtter det angivne servicenavn og emnetavnspar. '


Her er min registreringskode:


public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
            try
            {
                // Create a server that will register the service name 'myapp'.
                using (DdeServer server = new MyServer("CRMIntegrator"))
                {
                    // Register the service name.
                    server.Register();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }

Bedste reference


Du bruger ikke bruger søgeordet korrekt her. Efter registreringen (), vil serveren straks blive afhændet. Det gør det faktisk ret usandsynligt, at det stadig vil være i live, når load-arrangementet løber.


Lav variablen server et felt i din formularklasse. Tøm det ikke, før formularen er lukket, gør det i OnFormClosed () metode overstyring eller FormClosed event handler.