无法运行Windows服务 [英] Unable to run windows service

查看:82
本文介绍了无法运行Windows服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写服务以从模拟器中读取数据值。当我尝试调试我的服务时,我收到以下异常ActiveX控件无法实例化,因为当前线程不在单线程公寓中。非常感谢这方面的任何帮助。

My服务代码是

I am writing the service to read data values from simulator. When i try to debug my service I am receiving following exception "ActiveX Control cannot be instantiated because the current thread is not in a single threaded apartment".Any help in this regard is very much appreciated.
My service code is

<pre>public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            this.read();
        }
        public void read()
        {
            String sFilepath = @"C:\Users\admin\Desktop\TestService Projects\DATA\Read.txt";
            System.IO.StreamWriter oStreamWriter = new System.IO.StreamWriter(sFilepath, true);
            Connection con = new Connection();
            string[] result= con.read(4, Connection.baudrate.B19200, Connection.Parity.E, Connection.Databit.EIGHT, Connection.Stopbit.ONE, Connection.RegisterType.HoldingRegister, "1", 10);
            for(int i=0;i<result.Length;i++)
            {
                oStreamWriter.WriteLine(result[i]);
            }
            oStreamWriter.Close();
         }

        protected override void OnStop()
        {
        }







我尝试过:



我已经尝试完全调试并重新安装设置文件。




What I have tried:

I have tried debugging and reinstalling setup file completely.

推荐答案

您是否尝试将方法标记为:

have you tried tagging your method as:
[ComRegisterFunction]
public void read()
        {
            String sFilepath = @"C:\Users\admin\Desktop\TestService Projects\DATA\Read.txt";
            System.IO.StreamWriter oStreamWriter = new System.IO.StreamWriter(sFilepath, true);
            Connection con = new Connection();
            string[] result= con.read(4, Connection.baudrate.B19200, Connection.Parity.E, Connection.Databit.EIGHT, Connection.Stopbit.ONE, Connection.RegisterType.HoldingRegister, "1", 10);
            for(int i=0;i<result.Length;i++)
            {
                oStreamWriter.WriteLine(result[i]);
            }
            oStreamWriter.Close();
         }


这篇关于无法运行Windows服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆