0

Windows サービス (net.tcp バインディングを使用) によってラップされた WCF dll があり、DLL 内からアクセスできる OnStart 中にサービスのグローバル データをロードしたいと考えています。これはおそらく非常に単純ですが、私はそれを見ていません。助言がありますか?

namespace MyApp
    {
        [ServiceContract]
        public interface IMyApp
        {   
            [OperationContract]
             bool Export(MyObj obj);  // omitted definition of myObj for brevity
        }

        [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
        class MyWCF : IMyApp
        {
            public bool Export(MyObj obj) 
            { 
            bool bResult;
                string sExportPath = GlobalObject.GetEnvironmentPath(obj.Env); //GlobalObject class is defined within this namespace

            bResult = RetrieveDocument(obj.ID, sExportPath);    
                return bResult;
            }
        }
    }

    ------------------------- windows service  ------------------------------
    using MyApp;

    namespace MyService
    {
        public partial class MyService: ServiceBase
        {
            internal static ServiceHost objServiceHost = null;


            public MyService()
            {
                InitializeComponent();
            }

            protected override void OnStart(string[] args)
            {
                if (objServiceHost != null)
                    objServiceHost.Close();

                bServiceStopped = false;
                objServiceHost = new ServiceHost(typeof(MyWCF));
                objServiceHost.Open();


                Trace.TraceInformation("Load globaldata");
                if (!GlobalObject.LoadGlobalData()))
                {
                    Log("Failure attempting to Load Global Data...");

                    var controller = new System.ServiceProcess.ServiceController("MyService");
                    controller.Stop();

                }
            }

        }

    }
4

0 に答える 0