Tag: .net

在C#中将ulong映射为long?

我试图将ulong映射到long(反之亦然),并将uint映射到int(反之亦然),如下所示 – 以便将值保存在带有签名类型的MS-SQL数据库中整数和大整数。 我这样做是因为我必须检查(在数据库中)一个数字(uint,ulong)是否在一堆uint / ulong范围内的哪个范围内(IPs-v4&v6;实际上ulong实际上是由uint128组成的两个ulongs)。 是否有更有效的方法来实现这一点,然后我在这里的代码: public static ulong SignedLongToUnsignedLong(long signedLongValue) { ulong backConverted = 0; // map ulong to long [ 9223372036854775808 = abs(long.MinValue) ] if (signedLongValue < 0) { // Cannot take abs from MinValue backConverted = (ulong)System.Math.Abs(signedLongValue – 1); backConverted = 9223372036854775808 – backConverted – 1; } else { backConverted = […]

什么是ConnectionString为访问mdb文件创建OdbcConnection

我想使用Odbc从c#连接到Access MDB文件。 当我尝试执行时 OdbcConnection con = new OdbcConnection( “Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\temp\\test.mdb;”); 我得到以下exception: exc {System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle) at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at […]

Windowsapp store中的密码哈希

我正在为我的应用程序编写身份validation服务。 客户端将通过HTTP连接到此身份validation服务以进行注册或连接。 连接后,他们将收到一个会话密钥,他们可以使用加密的TCP / UDP数据包发送到辅助服务器。 这仍然是WIP所以,只是为了给你一个大图概述。 在Serverside中,我使用BCrypt来哈希传入的密码。 并将其存储在数据库中。 在Serverside中,我还使用BCrypts Verify方法检查存储哈希的任何传入密码。 所以这基本上有效。 但是,我自然不想通过线路传输未加密的密码。 Windows Store应用程序没有BCrypt,但我发现了一些MSDN示例代码,演示了如何使用新的Cryptography API for Windows Store应用程序来散列字符串,如下所示: public static string Hash(string password) { HashAlgorithmProvider provider = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Sha512); CryptographicHash hash = provider.CreateHash(); IBuffer buffer = CryptographicBuffer.ConvertStringToBinary(password, BinaryStringEncoding.Utf16BE); hash.Append(buffer); IBuffer hashedBuffer = hash.GetValueAndReset(); return CryptographicBuffer.EncodeToBase64String(hashedBuffer); } 我计划让各种客户端连接到该服务,而不仅仅是Windowsapp store应用程序(也是传统的Windows桌面应用程序)。 所以很自然地我想要“一种”方式来散列密码客户端。 我需要有关我应该实现的其他安全机制的建议,如果使用SHA512对密码客户端进行散列,如上面的代码中所示,在将其传输到服务器(在存储之前再次散列并加盐)时“足够”。

为什么MassTransit消息中不允许使用结构?

MassTransit的使用者接口都希望消息模型是类而不是结构。 因为它们都是内部接口(我必须说非常好的设计),这是显示约束的通用容器类,直接取自源代码 : /// /// Declares a Consume method for the message type TMessage which is called /// whenever aa message is received of the specified type. /// public static class Consumes where TMessage : class 对于刚开始使用该技术的人来说,这不是一个问题,但这对我们来说很麻烦,因为在我们的代码库中已经有了与命令模式相关的对象,甚至在考虑使用服务总线框架之前,所以我们不得不改变了很多接口和generics类来为它们添加这个约束来与MT一起工作。 我们很幸运没有明确地拥有任何struct类型,因为这可能会导致更多(可能是不需要的)更改。 为什么它要求消息类成为一个class ? 是否可以更改它,以便库与现有代码更加无缝地连接? 我认为虽然没有添加约束,所以可能存在一些并发症。

通过特定的Source读取Windows事件日志

如何通过特定的源,日期时间和类别读取Windows事件日志?

WinForms图表:设置最小Y轴显示范围

我有一个Winforms图表,其中我有温度读数到达并显示每秒。 我喜欢图表自动处理值显示的方式,但我想改变一件简单的事情 。 我想增加最小显示的y轴范围,因此它显示的范围为20.目前它只显示在5左右。我尝试了一些事情: //(when new data arrives…) //Does not work, I think because by default, Size is always NaN? if (chart1.ChartAreas[0].AxisY.ScaleView.Size < 20) { chart1.ChartAreas[0].AxisY.ScaleView.Size = 20; } 这些都不起作用: chart1.ChartAreas[0].AxisY.ScaleView.SmallScrollMinSize = 20; chart1.ChartAreas[0].AxisY.ScaleView.SmallScrollSize = 20; chart1.ChartAreas[0].AxisY.ScaleView.MinSize = 20; chart1.ChartAreas[0].AxisY.Minimum //doesn’t seem to have any effect chart1.ChartAreas[0].AxisY.Maximum //doesn’t seem to have any effect 我确定我错过了一些简单的事情。 无论如何我希望我有。

服务器未返回状态码为400(.net)的JSON

我有一个奇怪的问题,返回400状态代码与json错误。 在我的控制器中,我有类似的东西: if(!ModelState.IsValid) { string[] errors = ModelState.Values .SelectMany(x => x.Errors) .Select(x => x.ErrorMessage).ToArray(); Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest; return Json(new { success = false, errors = errors }, JsonRequestBehavior.DenyGet); } 这在我的开发机器上工作正常。 我可以在ajax错误方法中得到错误。 但是当我部署到服务器时,服务器不再返回JSON。 我总是得到responseText而不是reponseJSON。 如果我删除Response.StatusCode它工作正常。 这让我相信当我设置Response对象的StatusCode属性时,函数’返回’。 这有发生在其他人身上吗? 有人知道解决方案吗?

即使退出该function,.NET内存也无法释放

我有一些C#代码读取一个巨大的文件,经过一些操作后,将其引用设置为null并退出该函数,但内存不会释放。 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml(xmlString); XmlService.ConvertExcelToXML(xmlDoc); int sdfid = 320; XmlService.CompareXML(xmlDoc, ref sdfid, pkid); xmlDoc.RemoveAll(); xmlDoc = null; xmlDoc是一个非常大的字符串,通常大约50 MB。 当我退出该function时,该内存永久占用,我必须每天重启我的服务几次,否则它的内存使用量达到1GB。 我曾尝试使用GC.Collect,但没有用。 先感谢您。 编辑 这是XmlService的类声明。 它没有变数。 所有方法都是静态的 public class XmlService ConvertExcelToXML函数的代码 public static bool ConvertExcelToXML(XmlDocument xmlDoc) { XmlNamespaceManager nm = new XmlNamespaceManager(xmlDoc.NameTable); nm.AddNamespace(“z”, “urn:schemas-microsoft-com:office:spreadsheet”); nm.AddNamespace(“o”, “urn:schemas-microsoft-com:office:office”); nm.AddNamespace(“x”, “urn:schemas-microsoft-com:office:excel”); nm.AddNamespace(“ss”, “urn:schemas-microsoft-com:office:spreadsheet”); nm.AddNamespace(“html”, “http://www.w3.org/TR/REC-html40”); XmlNodeList […]

VS2010 COM互操作错误解决方法? (INetFwMgr)

( 编辑 :解决了,解决方案很简单 – 在2008SP1中构建,使用生成的Interop.NetFwTypeLib.dll并将其用作第三方程序集。感谢Rick Sladkey。) 我已经升级了一些引用COM对象到VS 2010的代码(下面)。仍然在.Net 3.5上。 从那时起构建就被打破了:( The type or namespace name ‘INetFwMgr’ could not be found (are you missing a using directive or an assembly reference?) )… 我发现了一个微软的bug ,有人说: SDK 4.0 tlbimp.exe总是导入第一个,它不遵循正确的流。 即使您手动调用tlbimp.exe并给出正确的路径。 这是问题的根本原因。 驻留在非默认流中的任何COM dll将与4.0的tlbimp.exe具有相同的问题。 接下来是: SDK 3.5 tlbimp.exe没有此问题。 解决方法是使用3.5 tlbimp.exe从完整路径手动导入Interop程序集,因为它存储在注册表中并在项目中引用此Interop程序集。 有人可以解释一下解决方法吗? (我尝试了明显的tlbimp COM_DLL /out=OUT_DLL ,没有好处)。 有人遇到过另一个COM吗? 谢谢! 注意:XP …… […]

使用正则表达式的缺点

最近我的经理告诉我不要太依赖Regex,因为它有很多缺点。 当我试图了解更多时,我听说它有像正则表达式这样的问题可能导致内存泄漏,因为一些对象在使用后仍继续挂在字符串引用上? .NET RegEx“内存泄漏”调查 所以说reg-ex会导致内存开销并且如果你有其他选择则不应该使用它是正确的吗? 是否有任何其他不利于注册(除了它很难学习:)) PS我正在开发一个类似于网络爬虫的应用程序(c#.net),它提取所有href和一些其他信息,如标题,元标记等。我可以选择使用HTML Agility包而不是reg-ex。