C# 通过WCF服务首次连接后,与OPC服务器的连接中断
我有一个作为OPC客户端的WCF服务,它与OPC DA服务器接口,还有一个与WCF交互并启动它的WCF客户端(使用其方法) 问题在于: 当我第一次使用WCF方法C# 通过WCF服务首次连接后,与OPC服务器的连接中断,c#,wpf,wcf,subscription,opc,C#,Wpf,Wcf,Subscription,Opc,我有一个作为OPC客户端的WCF服务,它与OPC DA服务器接口,还有一个与WCF交互并启动它的WCF客户端(使用其方法) 问题在于: 当我第一次使用WCF方法connectToOPC()时,连接可能会在几秒钟后断开,也可能不会断开数据更改停止。 但是,当我重新启动connectToOPC时,连接仍处于活动状态,不会断开。发生了什么,为什么 WCF服务: public void connectToOPC(string OPCUrl, int GroupUpdateTime) { try
connectToOPC()
时,连接可能会在几秒钟后断开,也可能不会断开<代码>数据更改停止。
但是,当我重新启动connectToOPC
时,连接仍处于活动状态,不会断开。发生了什么,为什么
WCF服务:
public void connectToOPC(string OPCUrl, int GroupUpdateTime)
{
try
{
Main(OPCUrl, GroupUpdateTime);
}
catch (Exception ex) { Log(ex.Message, ""); }
}
public bool Run(string OPCUrl, int GroupUpdateTime)
{
try
{
url = new Opc.URL(OPCUrl);
server.Connect(url, new Opc.ConnectData(new System.Net.NetworkCredential()));
groupState = new Opc.Da.SubscriptionState();
groupState.Name = "MyGroup";
groupState.UpdateRate = GroupUpdateTime;
groupState.Active = true;
groupRead = (Opc.Da.Subscription)server.CreateSubscription(groupState);
groupRead.DataChanged += new Opc.Da.DataChangedEventHandler(group_DataChanged);
items = new Opc.Da.Item[ListOfTags.Count];
for (int i = 0; i < ListOfTags.Count; i++)
{
items[i] = new Opc.Da.Item();
items[i].ItemName = ListOfTags[i];
}
items = groupRead.AddItems(items);
}
catch (Exception ex)
{
Log(ex.Message, "");
return false;
}
return true;
}
void group_DataChanged(object subscriptionHandle, object requestHandle,Opc.Da.ItemValueResult[] values)
{
//its stops here at first time
}
public partial class MainWindow : Window
{
OPCClient client;
public MainWindow()
{
InitializeComponent();
client = new OPCClient("BasicHttpBinding_IOPC");
}
private void buttonOpcRun_Click(object sender, RoutedEventArgs e)
{
try
{
GroupUpdateTime = Convert.ToInt32(textBoxUpdateGroupTime.Text);
client.connectToOPC(OPCUrl, GroupUpdateTime);
}
catch (Exception ex)
{
System.Windows.MessageBox.Show(ex + "");
}
}
}