要写一个跟第三方软件iFix通讯的功能,引用FixDataSystem,和microsoft.VisualBasic.
下面这段代码在窗口程序和Console程序里都能正常运行,但是写到服务程序里,就无法运行,调试跟踪是在groups.Add("G1");这句,服务程序就崩溃了,哪位大侠帮忙看看什么原因?怎么修改?
String ifix_label;
IFixDataSystem FDS = Interaction.CreateObject("FixDataSystems.Intellution FD Data System Control", "") as FixDataSystems.IFixDataSystem; IFixDataServerCollection dataServerCollection = FDS.DataServers as FixDataSystems.IFixDataServerCollection;
Groups groups = FDS.Groups as FixDataSystems.Groups;
groups.Add("G1");
FixDataSystems.Group group = groups["G1"] as FixDataSystems.Group;
FixDataSystems.DataItems dataItems = group.DataItems as FixDataSystems.DataItems;
dataItems.Add(ifix_label); FixDataSystems.DataItem dataitem1 = dataItems[ifix_label] as FixDataSystems.DataItem;
dataitem1.Value = 12;
group.Write();
下面这段代码在窗口程序和Console程序里都能正常运行,但是写到服务程序里,就无法运行,调试跟踪是在groups.Add("G1");这句,服务程序就崩溃了,哪位大侠帮忙看看什么原因?怎么修改?
String ifix_label;
IFixDataSystem FDS = Interaction.CreateObject("FixDataSystems.Intellution FD Data System Control", "") as FixDataSystems.IFixDataSystem; IFixDataServerCollection dataServerCollection = FDS.DataServers as FixDataSystems.IFixDataServerCollection;
Groups groups = FDS.Groups as FixDataSystems.Groups;
groups.Add("G1");
FixDataSystems.Group group = groups["G1"] as FixDataSystems.Group;
FixDataSystems.DataItems dataItems = group.DataItems as FixDataSystems.DataItems;
dataItems.Add(ifix_label); FixDataSystems.DataItem dataitem1 = dataItems[ifix_label] as FixDataSystems.DataItem;
dataitem1.Value = 12;
group.Write();
你好,我是在OnStart()里调用这段代码,我在窗口程序和Console程序里都试过,能正常运行,只有服务程序,造成运行这段,服务直接崩溃。
{
server = new AsyncTcpServer(9010);
server.Encoding = Encoding.Unicode;
server.ClientConnected +=
new EventHandler<TcpClientConnectedEventArgs>(server_ClientConnected);
server.ClientDisconnected +=
new EventHandler<TcpClientDisconnectedEventArgs>(server_ClientDisconnected);
server.PlaintextReceived +=
new EventHandler<TcpDatagramReceivedEventArgs<byte[]>>(server_PlaintextReceived);
server.Start();
MSGHandler("TCP server has been started."+ server.Port+" \r\n", 100);
scada_read("Fix32.ML.T1.F_CV");
}public void scada_read(string ifix_label)
{
//读取iFix变量
//MSGHandler("12343241"+" \r\n", 100);
IFixDataSystem FDS = Interaction.CreateObject("FixDataSystems.Intellution FD Data System Control", "") as FixDataSystems.IFixDataSystem;
IFixDataServerCollection dataServerCollection = FDS.DataServers as FixDataSystems.IFixDataServerCollection;
Groups groups = FDS.Groups as FixDataSystems.Groups;
groups.Add("1");
FixDataSystems.Group group = groups["1"] as FixDataSystems.Group;
FixDataSystems.DataItems dataItems = group.DataItems as FixDataSystems.DataItems;
//MSGHandler(ifix_label+" \r\n", 100);
dataItems.Add(ifix_label); FixDataSystems.DataItem dataitem1 = dataItems[ifix_label] as FixDataSystems.DataItem;
dataitem1.Value = 12;
group.Write();
//MSGHandler(dataitem1.Value+" \r\n", 100);
}
在 FixDataSystems.IFixDataItemCollection.Add(String bstrName)
在 CowBoy_SocketServer.CowBoy_SocketServer.scada_read(String ifix_label)