小编Dou*_*ugN的帖子

Web服务器如何避免TIME_WAIT?

我正在编写一个简单的HTTP服务器并学习TIME_WAIT.在处理请求后,如果没有所有套接字卡在TIME_WAIT中,那么繁重环境中的真实Web服务器如何处理来自数千个用户的请求?(不询问保持活着 - 这对单个客户有用,但对于成千上万的不同客户来说却没有帮助).

我已经读过你尝试让客户端先关闭,这样所有的TIME_WAIT都会在所有客户端之间传播,而不是集中在服务器上.

这是怎么做到的?在某些时候,服务器必须调用close/closesocket.

sockets tcp http winsock

10
推荐指数
1
解决办法
7815
查看次数

如何在Windows对话框中处理WM_ERASEBKGND时避免闪烁

我有一个调整大小的对话框.它还有一个自定义背景,我为响应WM_ERASEBKGND调用而绘制(当前是对FillSolidRect的简单调用).

调整对话框大小后,会出现巨大的闪烁现象.为了尝试减少闪烁,我枚举所有子窗口并将它们添加到剪切区域.这似乎有点帮助 - 现在闪烁在所有儿童控件中都很明显,因为它们重新粉饰.

如何在调整大小时使对话框无闪烁?我怀疑双缓冲必须发挥作用,但我不知道如何使用带有子控件的对话框(没有让所有子控件所有者绘制或类似的东西).

我应该注意到我使用的是C++(不是.NET)和MFC,尽管欢迎基于Win32的纯解决方案:)

注意:有一件事我尝试了但哪些不起作用(不确定原因)是:

CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.FillSolidRect(rect, backgroundColor);

pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memDC, 0, 0, SRCCOPY);
Run Code Online (Sandbox Code Playgroud)

windows resize dialog gdi flicker

9
推荐指数
4
解决办法
2万
查看次数

创建X509Certificate2时是否阻止文件创建?

我们在ASP.NET应用程序中创建一个X509Certificate2对象,以定期传出连接.每次创建其中一个证书时,都会在以下位置创建一个新文件:

C:\ ProgramData \微软\加密\ RSA\MachineKeys的

该文件夹现在有400万个永远不会被清理的文件.我试过删除Persist标志

新的X509Certificate2(certBytes,p12Pwd,X509KeyStorageFlags.MachineKeySet);

//没有X509KeyStorageFlags.PersistKeySet

但这没有帮助 - 仍然在每次通话时获得2Kb文件.

当我看到这个答案时,我对此抱有希望,但这是一个2008 R2服务器,而临时文件不是0字节,所以它似乎是一个不同的情况.

如何在不填满磁盘的情况下使用X509Certificate2?

c# ssl certificate x509certificate2 x509certificate

7
推荐指数
3
解决办法
3347
查看次数

Windows C++对话框缩放器类

我正在寻找一个非常好的对话框缩放器类,它将根据需要在调整屏幕大小时拉伸和缩小单个项目.Stephan Keil有一个很好的(DlgResizeHelper),它基本上按设定的比例调整所有内容,但我正在寻找更聪明的东西.

例如:

  • 图标不应调整大小

  • 单行文本框不应垂直拉伸

  • 按钮应该保持相同的大小

基本上我正在寻找能够查看所有控件的东西,弄清楚静态文本字段与它下面/下面的控件相关并将两者锚在一起,并以"智能"方式调整大型控件的大小以使其看起来像好.

那里有这样的框架吗?我一直在做一个,但现成的东西可能会更好.

关注:我正在寻找建议的解决方案.他们中的许多人要求你在对话框中的每个控件中进入锚点.我正在寻找能够找出锚点应该是什么的聪明的东西,能够在猜测错误的情况下手动锚定.似乎它应该是可能的 - 大多数人会同意编辑字段旁边的静态文本字段应该锚定在一起.猜猜我差不多在这里寻找一个小人工智能:)

c++ windows mfc resize dialog

6
推荐指数
1
解决办法
3947
查看次数

查找本地化Windows字符串

我需要找到当前版本的Windows正在使用的一些字符串.例如,当我创建一个新文件夹时,它最初在英文版Vista上命名为"新文件夹".我需要以编程方式查找在我可能正在运行的任何语言和Windows版本上命名该文件夹的内容.

任何人有任何想法如何做到这一点?

谢谢莫里纳尔 - 我也偶然发现了这篇文章.不幸的是,stringID似乎不是常量 - 在我的Vista上它是30396,这与它们为XP显示的不同.因此,MS似乎没有保持稳定.

编辑:看起来这是不可能的......?这个应用程序运行在德国,荷兰,法国,西班牙,巴西,墨西哥,越南,台湾,中国,日本,韩国,印度,以色列,匈牙利的计算机上......你明白了.安装所有不同的语言包需要很长时间,并找出每种语言中的"新文件夹".

也许最好的选择是默认为"新建文件夹",并让用户根据需要更改该值.我只是想让软件尽可能多地计算出来,并使用户无需配置_yet_another_setting_.

windows localization

5
推荐指数
2
解决办法
2896
查看次数

跨受信任域的LDAP用户身份验证

我的应用程序通过LDAP(通常是Active Directory)定义授权用户:

  1. 客户定义LDAP服务器(TreeA)和组(GroupA).GroupA中的任何用户都可以使用该应用程序.
  2. 在登录时,用户发送他们的用户名和密码 - 如果绑定到LDAP TreeA并且他们的凭据有效,并且他们的用户帐户在GroupA中,他们很高兴去

我遇到了两个活动目录相互信任的情况,TreeA中指定的GroupA包含来自TreeB的用户.因此,第2步失败是因为我正在尝试针对TreeA对UserB(来自TreeB)进行身份验证.

该应用程序可以访问TreeA,所以我想它可以在GroupA中查看并在那里查看UserB.但是它怎么知道它需要向TreeB发送绑定请求以验证用户名和密码?

有没有更好的方法来解决这个问题?
由于存在信任关系,对TreeA的此类绑定请求是否应自动转发到TreeB?

authentication trust dns ldap active-directory

5
推荐指数
1
解决办法
3万
查看次数

自签名证书 - 帮助用户知道他们需要将根CA添加到受信任的证书库

我有一个桌面产品,它使用嵌入式网络服务器,它将使用自签名证书.

有什么东西可以放在一个网页中,可以检测到他们没有将根CA添加到他们的可信列表中,并显示链接或DIV或指示他们如何操作的东西?

我想也许是有安装CA的指令的DIV,以及运行一些测试的Javascript(尝试访问没有内部警告的东西?),如果测试成功,则隐藏DIV.或类似的东西...

来自辉煌的SO社区的任何想法?:)

javascript browser certificate self-signed ssl-certificate

4
推荐指数
1
解决办法
3334
查看次数

Win32 DrawText行高

我正在调用Win32 DrawText函数将一些文本输出到设备上下文中.文本很长,很好地包装在第二行.问题是我需要减少线之间的空间(我猜减少线高?).关于如何做到这一点的任何想法?

我只会打DrawText两次电话(每一行一次)但是我必须做自己的自动换行.

还有其他方法吗?

谢谢

winapi text gdi device-context

4
推荐指数
2
解决办法
2717
查看次数

LDAP组成员资格(包括域用户)

如何获取LDAP组中的用户列表,即使该组恰好是某些用户的主要组?

例如,假设"Domain Users"是德语中的"Domain Leute".我想要"CN = Domain Leute,DC = mycompany,DC = com"的所有成员.我怎么知道这是众所周知的"域用户"组?

或者如果某些用户的主要组被更改为"CN = rebels,DC = mycompany,DC = com",我想获得该组的成员呢?用户的主要组没有memberOf属性,主要组没有列出它们的成员属性.

这是我通过LDAP查看时看到的(即没有MS扩展): 替代文字

ldap adsi member active-directory ldap-query

4
推荐指数
2
解决办法
3万
查看次数

IcmpSendEcho2因WSA_QOS_ADMISSION_FAILURE和ERROR_NOACCESS失败而失败

我有一个应用程序ping一堆服务器.它运行良好的几天,但突然会有两种类型之一的许多失败:

WSA_QOS_ADMISSION_FAILURE(11010)"由于资源不足而发生QoS错误"

要么

ERROR_NOACCESS(998)"对内存位置的访问无效."

奇怪的是错误串起来了.即上述错误之一,所有ping可能会失败几分钟.然后它就清理了.之后所有的ping都会因为另一个错误而失败几分钟.它们似乎并不交错.

这种情况发生在Windows 2008 R2上.我无法随意重现它,但如果我等了一两天,它总会再次发生.

我检查并重新检查,然后再次检查以确保我关闭所有打开的手柄.

应用程序首次启动时从未发生过,因此似乎与查找或加载DLL无关.它会在一段时间后自行修复,所以似乎不会耗费资源.它运行好几天,所以它似乎不是一个API使用问题.

在这里不知所措.有没有人有任何想法?

谢谢

winapi ping icmp icmpsendecho2

4
推荐指数
1
解决办法
1502
查看次数