我想在C#中实现这个
我看过这里:http: //www.codeproject.com/KB/cpp/PEChecksum.aspx
并且我知道ImageHlp.dll MapFileAndCheckSum函数.
但是,出于各种原因,我想自己实现.
我找到的最好的是:http: //forum.sysinternals.com/optional-header-checksum-calculation_topic24214.html
但是,我不明白这个解释.任何人都可以澄清如何计算校验和吗?
谢谢!
更新
我从代码示例中,我不明白这意味着什么,以及如何将其转换为C#
sum -= sum < low 16 bits of CheckSum in file // 16-bit borrow
sum -= low 16 bits of CheckSum in file
sum -= sum < high 16 bits of CheckSum in file
sum -= high 16 bits of CheckSum in file
Run Code Online (Sandbox Code Playgroud)
更新#2
谢谢,遇到了一些Python代码,不会太相似这里
def generate_checksum(self):
# This will make sure that the data representing the PE image
# is updated with …Run Code Online (Sandbox Code Playgroud) 我们正在使用EWS在某些邮箱上生成一些分析。
这部分是获得对话的计数/名称/开始/结束。对话类似于Outlook 2010在按对话分组时显示它们的方式。
我希望能够使用ConversationId对项目进行分组,但这似乎仅是Exchange 2010的功能。
我可以在文件夹中按主题分组,以简单地了解线程...但是,这不能像Outlook 2010那样处理拆分的对话-特别是,它不能处理引入已发送邮件中的回复(这些对我们很重要-如果不查看答复,就无法获得良好的指标)。
我当前用于获取线程信息的代码如下所示:
private IEnumerable<EmailThread> GetThreads(Folder folder)
{
var view = new ItemView(int.MaxValue) {PropertySet = new PropertySet(BasePropertySet.IdOnly)};
// view.PropertySet.Add(ItemSchema.ConversationId); - Can't use this as we're stuck on Exchange 2007 !!!
view.PropertySet.Add(ItemSchema.Subject);
view.PropertySet.Add(ItemSchema.DateTimeReceived);
var grouping = new Grouping(ItemSchema.Subject, SortDirection.Descending, ItemSchema.DateTimeReceived, AggregateType.Maximum);
var groupResults = folder.FindItems(view, grouping);
return groupResults.Select(x => new EmailThread
{
Name = x.Items.First().Subject,
Items = x.Items.Count,
StartDate = x.Items.Last().DateTimeReceived, // Assume last in thread is first email
EndDate = x.Items.First().DateTimeReceived // Assume first in …Run Code Online (Sandbox Code Playgroud) c# outlook exchange-server exchange-server-2007 exchangewebservices
我们有一个相当大量的IIS7.0站点(每天约100万个请求),其中很多是Images/CSS/JS.
作为一种减少这种情况的快速方法,我正在考虑设置常见的http响应标头,以便将来某个固定的日期方式使网络内容过期,并且想知道我们可以通过这种方式获得哪些可能的缺点.
查看设置此内容所导致的web.config更改,它添加:
<staticContent>
<clientCache cacheControlMode="UseExpires" cacheControlMaxAge="1.00:00:00" httpExpires="Thu, 01 Oct 2020 00:00:00 GMT" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)
我担心的是,如果我们想在设置之后更改其中一个CSS/JS/Images,客户端就不会接收更改,虽然图像可能不会改变,但CSS/JS肯定会.这是否意味着我们应该只设置这对包含文件夹只图像?或者这是否意味着我们需要为CSS/JS引入版本化的URL?
我在IE9中使用SignalR,不幸的是,它必须降级为使用永久帧连接.
我花了一些时间用IE中的开发者工具来看这个.我可以看到回调加载到动态插入的IFrame中,并且它们在SignalR插件中调用receive函数.然而,大约20/30之后,它只是停止响应 - 我不能再从服务器调用客户端脚本.
我猜测IFrame加载最终超时,但似乎没有为此引发任何事件,因此我无法强制重新连接.
有没有人设法在IE中获得强大的SignalR连接?
谢谢 :)
我使用的NuGet拉进来YUICompressor.NET.MSBuild,这反过来又拉动YUICompressor.NET和EcmaScript.Net.
它还添加了对我的Web项目中所有三个DLL的引用.然后,我可以像这样添加UsingTask引用:
<UsingTask TaskName="CssCompressorTask" AssemblyFile="$(SolutionDir)\packages\YUICompressor.NET.MSBuild.2.3.0.0\lib\NET20\Yahoo.Yui.Compressor.Build.MsBuild.dll" />
Run Code Online (Sandbox Code Playgroud)
然后使用该任务在AfterBuild目标中压缩我的Javascript/CSS
但是,我不想在我的web项目中引用这些DLL(因为它们实际上并不是我发布的内容的一部分)...但是当我删除引用时,CssCompressorTask再也找不到其他两个相关的DLL了(它们位于文件夹下的不同文件/packages夹中 - 如果它们在旁边则可以正常工作Yahoo.Yui.Compressor.Build.MsBuild.dll)
信不信由你,我花了好几个小时试图让依赖关系得到解决:首先我尝试修改AssemblySearchPaths以包含所有其他/ packages子文件夹,如下所示:
https://github.com/BenPhegan/NuGetAutoTransitiveDependencies
这不起作用,所以我尝试创建一个内联汇编解析器,如下所示:
这也不起作用.目前,我认为我唯一的选择是将依赖的DLL与UsingTask dll一起使用,不管怎样......但这感觉就像我的MSBuild foo让我失望:/
任何想法非常感谢!谢谢.
我在SOLR中使用多个核心来启用离线索引(然后使用SWAP交换活动核心).我想为两个核心使用相同的solrconfig.xml文件 - 有人可以告诉我应该把它放在哪里,以便它可以被SOLR接收吗?
在GitHub中合并了拉取请求后,是否可以将分支标记为不可删除?
原因是我们希望有一个长期存在的"vNext"分支,它将不时地合并回主分支,但不应删除.
我们喜欢jQuery验证,并且真的想继续使用它.
但是,其中一个最有用的功能是能够验证客户端的电子邮件地址...但它使用的正则表达式接受以"."结尾的电子邮件,我不相信这是有效的,当然不是我们的后端系统喜欢它.
我想知道是否有人知道为什么选择这个特殊的正则表达式或者它是否是一个bug?
问题中的jquery.validate-1.8.1代码:
// http://docs.jquery.com/Plugins/Validation/Methods/email
email: function(value, element) {
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
},
Run Code Online (Sandbox Code Playgroud)