gpt4 book ai didi

c# - FBRemoteEvent 使应用程序崩溃

转载 作者:太空狗 更新时间:2023-10-29 20:42:24 25 4
gpt4 key购买 nike

我有一个 fb 远程事件,我用它来监听数据库,并在线程内加载我的应用程序来启动它。

当我在我的 Windows 10(本地电脑)上运行它时,它运行正常且完美,但是当我在 Windows Server 2003 上运行它时,它开始填充 RAM 内存,超出应有的数量,当它达到服务器限制时,它就会关闭。

这是我的代码:

private void DataBaseEventListner()
{
FbRemoteEvent revent = new FbRemoteEvent(M.Baza.connectionString);
FbRemoteEvent revent1 = new FbRemoteEvent(M.Baza.connectionKomercijalno2018);

revent.RemoteEventCounts += (sender, e) =>
{
this.Invoke(new MethodInvoker(delegate
{
Poruka p = new Poruka(Magacin.Poruka.UcitajPoslednjuPorukuID(Korisnik.korisnikId));
p.Show();
}));
};

revent1.RemoteEventCounts += (sender, e) =>
{
switch (e.Name)
{
case "PP_NEW":
case "PP_UPD":
Thread thread1 = new Thread(UcitajPoslovnePartnere);
thread1.Start();
break;
}
};

revent.QueueEvents(String.Format("nova_poruka~" + Korisnik.korisnikId.ToString()));
revent1.QueueEvents(new string[] { "PP_NEW", "PP_UPD" });
}


private void UcitajPoslovnePartnere()
{
poslovniPartneri = Komercijalno.Partner.Lista();
}

public static List<Int_String> Lista()
{
List<Int_String> list = new List<Int_String>();
using (FbConnection con = new FbConnection(M.Baza.connectionKomercijalno2018))
{
con.Open();
using (FbCommand cmd = new FbCommand("SELECT PPID, NAZIV FROM PARTNER ORDER BY NAZIV", con))
{
FbDataReader dr = cmd.ExecuteReader();
list.Add(new Int_String { _int = -1, _string = "<izaberi partnera>" });
while (dr.Read())
list.Add(new Int_String { _int = Convert.ToInt32(dr[0]), _string = dr[1].ToString() });
}
con.Close();
}
return list;
}

我将它包装在 try-catch 中,我得到的错误是:

Error reading data from the connection.
at FirebirdSql.Data.FirebirdClient.FbRemoteEvent.QueueEvents(String[] events)
at Magacin.Main.DataBaseEventListner()

在 firebird 日志中我得到

TERMINAL_64 (Server)    Sat Jun 30 17:03:52 2018
INET/inet_error: read errno = 10054

我试过设置 Pooling=false 但还是不行

我正在从 .TXT 加载我的连接字符串,当我加载它时,我正在构建它:

string[] data = line.Split('|');
//Here I do something with data[0] which is not part of connection string
Baza.connectionString = System.String.Format(@"data source={3};initial catalog = {0};user={1};password={2}", data[1], data[2], data[3], data[4]);

我的 .TXT 文件中的字符串是:

C:\Prirucni Magacin\PRIRUCNIMAGACIN.FDB|SYSDBA|masterkey|localhost //This is on local pc

所以最后的字符串看起来像:

data source=localhost;initial catalog = C:\Prirucni Magacin\PRIRUCNIMAGACIN.FDB;user=SYSDBA;password=masterkey

最佳答案

根据 that bugreport您的解决方案是否可能在您的连接字符串之后设置该参数:

Pooling=false

示例:

new MySqlConnection("SERVER=localhost;DATABASE=myDB;USER=wiii;PASSWORD=wiiii2;POOLING=FALSE;");

关于c# - FBRemoteEvent 使应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51043645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com