我没有找到如何在app.config中访问这样的嵌套配置部分的任何示例
<my.configuration>
<emailNotification>
<to value="me@you.com" />
<from value="he@you.com" />
<subject value="Subject" />
<smtpHost value="smtp.you.com" />
<triggers>
<add name="1" varAlias="Var1" lower="-200" upper="-150"/>
</triggers>
</emailNotification>
</my.configuration>
Run Code Online (Sandbox Code Playgroud)
我之前使用过ConfigurationElementCollection和ConfigurationElement.但我不知道怎么做以上?
在数据库中存储大量数据的最佳方法是什么?我需要存储带有时间戳的各种环境传感器的值.我已经用SQLCE完成了一些基准测试,它适用于几十万行,但如果它达到数百万,则选择将变得非常慢.我的实际表格:
Datapoint:[DatastreamID:int, Timestamp:datetime, Value:float]
Datastream: [ID:int{unique index}, Uint:nvarchar, Tag:nvarchar]
Run Code Online (Sandbox Code Playgroud)
如果我查询特定Datastream的数据点和日期范围,则需要很长时间.特别是如果我在嵌入式WindowsCE设备上运行它.这是主要问题.在我的开发机器上,查询占用了〜1sek,但在CE设备上耗时约为5分钟
每5分钟我记录20个传感器,每小时12个*24小时*365天= 105,120*20个传感器=每年2,102,400(行)
但它可能是更多的传感器!
我考虑过某种web服务后端,但设备可能并不总是连接到互联网/服务器.
数据必须能够在设备上显示.
我怎样才能加快速度呢?选择其他表格布局,使用其他数据库(sqlite)?目前我使用.netcf20和SQLCE3.5
一些建议?
我有一个在WinXPe下运行的Windows服务应用程序,它有时会失败并显示错误并向用户显示一个消息框:
""处的指令引用"0x00000000"处的内存.内存无法"读取".按"确定"退出程序
如果用户单击"确定",则服务正在重新启动.
我试图通过AppDomain.CurrentDomain.UnhandledException
在处理程序中注册eventhandler来捕获所有未处理的异常,我记录异常详细信息并退出应用程序.但我上面提到的错误不是从"UnhandledException"处理的.
该应用程序是多线程的,使用System.Threading.Timer和System.Threading.Thread.它使用了一些第三方库,其中一个库使用本机互操作,我没有本机库的来源.
我试图用附加的调试器指出错误,但错误没有显示;)应用程序必须在错误发生前几天运行.
我需要一种方法来处理这样的错误.
谢谢
此代码导致某种内存泄漏.我认为它是由...引起的new byte[].但GC不应该避免这种情况吗?如果程序运行的时间足够长,代码将导致OutOfMemoryException
using (var file = new FileStream(fileLoc, FileMode.Open))
{
int chunkSize = 1024 * 100;
while (file.Position < file.Length)
{
if (file.Length - file.Position < chunkSize)
{
chunkSize = (int)(file.Length - file.Position);
}
byte[] chunk = new byte[chunkSize];
file.Read(chunk, 0, chunkSize);
context.Response.BinaryWrite(chunk);
}
}
Run Code Online (Sandbox Code Playgroud)