小编mep*_*123的帖子

安装 VS 2022 后 Git 停止工作

安装新的 Visual Studio 2022 后,内置的 Git 支持突然停止工作。对于其中一个项目,我只看到一个子模块而不是主存储库。对于另一个项目,内置的 Git 面板根本不出现,显示一些有关“SccProviderPackage”的神秘消息,指出“发生一个或多个错误”作为原因......

花了一段时间遵循我能找到的关于类似问题的每一条建议,但没有运气。

git visual-studio-2022

20
推荐指数
3
解决办法
7885
查看次数

当辅助站点无法访问时,与PHP的MongoDB副本集的连接需要一分钟+

我有一个由5个成员组成的副本集:服务器1上的主服务器+仲裁服务器,服务器2上的辅助服务器+仲裁服务器,服务器3上的隐藏辅助服务器(备份节点).我希望如果一台服务器出现故障或暂时失去连接,此配置将起作用.

但是,当服务器2关闭时(具有辅助+仲裁节点的服务器),我遇到了一个奇怪的问题.与PHP副本集的任何连接都需要一分多钟.我尝试修改连接字符串以从中排除已关闭的服务器(辅助节点),但它没有帮助.

同时通过mongo控制台连接工作得很好.主节点仍然是主节点.PHP错误日志不包含任何错误.

唯一有帮助的是删除服务器上从副本集中删除的节点.

但是,我现在担心配置的故障转移.正如我现在所知,如果具有辅助+仲裁节点的服务器将关闭,整个配置将停止正常工作.有什么办法可以避免吗?无论辅助+仲裁服务器是否可用,我都需要PHP客户端能够连接到主服务器.怎么实现呢?

mongo PHP客户端库的版本是1.6.x,服务器的版本是3.0.

php failover mongodb replicaset

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

是否可以在 .NET Core 上的 C# HttpClient 中修改 TLS 握手

显然,CloudFlare 现在为每个已知浏览器的可能 TLS 握手参数提供了某种白名单。因此,当我使用 HttpClient 发送 HTTPS 请求时,CloudFlare 会认为它是一个机器人,并且至少会显示一个验证码。验证码本身不是问题,我正在使用浏览器要求用户通过它。然而,一些网站即使在通过验证码后也显然会阻止某些请求,因为 TLS 握手未被 CloudFlare 列入白名单。

因此,我深入研究了 .NET Core 源代码,看看是否可以修改 TLS 握手数据包的构建方式。不幸的是,似乎 .NET Core 本身并不构建它本身,而是将其委托给底层库(Linux / 标准 Windows 上的 OpenSSL)...是编写我自己的 SSL 库的唯一解决方案吗?...听起来像一项长达数月的任务。

c# ssl handshake cloudflare .net-core

7
推荐指数
0
解决办法
2548
查看次数

InPlaceBitmapMetadataWriter.TrySave()返回true但不执行任何操作

在Windows 7中的一些.JPG文件(EPS预览,由Adobe Illustrator生成)InPlaceBitmapMetadataWriter.TrySave()在一些SetQuery()调用后返回true,但什么都不做.

代码示例:

BitmapDecoder decoder;
BitmapFrame frame;
BitmapMetadata metadata;
InPlaceBitmapMetadataWriter writer;
decoder = BitmapDecoder.Create(s, BitmapCreateOptions.PreservePixelFormat | BitmapCreateOptions.IgnoreColorProfile, BitmapCacheOption.Default);
frame = decoder.Frames[0];
metadata = frame.Metadata as BitmapMetadata;
writer = frame.CreateInPlaceBitmapMetadataWriter();
try {
    writer.SetQuery("System.Title", title);
    writer.SetQuery(@"/app1/ifd/{ushort=" + exiftagids[0] + "} ", (title + '\0').ToCharArray());
    writer.SetQuery(@"/app13/irb/8bimiptc/iptc/object name", title);
    return writer.TrySave();
}
catch {
    return false;
}
Run Code Online (Sandbox Code Playgroud)

图像样本

您可以通过下载图像示例并使用此代码示例在此图像上设置标题来重现问题(如果您有Windows 7).图像有足够的空间容纳元数据 - 这个代码示例在我的WinXP上运行正常.相同的代码在Win7上与其他.JPG文件一起正常工作.

欢迎任何想法:)

c# wpf metadata

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

如果容器具有非整数(%)位置,则子位置与指定的位置不同

我的中心是(position: absolute; left: 50%; margin: -50px;)100px宽度div(容器).

它具有绝对定位的子div overflow: hidden,其大小为100x2000 px(这样的高度用于测试目的,如下所述).

在儿童div中有一个图像,它绝对定位.图像是3100x100 px,包含动画帧.

我通过将其style.left从0 更改为-1100px 来动画此图像,步长为100px.一切都很好,但是当身体宽度不均匀时,我会遇到奇怪的问题.

如果有滚动条并且滚动条具有奇数宽度(例如,我在Chrome/Win32上发生),就会发生这种情况.在这种情况下,一旦动画图像通过屏幕边缘,图像就会在视觉上水平移动1个像素(对于1920x1080,它大致发生在动画的9-10帧).我找不到这种行为的解决方法.

可以在此处找到再现问题的工作示例

子div高度设置为2000px以确保滚动条可见.如果滚动条的宽度均匀,则可以通过将浏览器窗口的大小调整为奇​​数宽度来重现问题.

html javascript css animation

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

android chrome 上的中心块

我在移动 Chrome 上显示我的网页时遇到了奇怪的问题。我有一个水平居中的块,它在桌面 Chrome 上显示得很好,但在移动 Chrome 上它粘在页面的左边框上。

经过一番研究,我意识到存在与屏幕尺寸不同的移动“视口”。因此,以某物为中心并不是一项简单的任务。

我正在使用的简化标记:

<body>
    <div class="block">
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)

和 CSS:

body {
    width: 100%;
    margin: 0;
}
.block {
    position: relative;
    width: 1024px;
    height: 768px;
    background-color: red;
    top: 44px;
    margin: auto;
}
Run Code Online (Sandbox Code Playgroud)

我还尝试使用以下方法将块居中:

left: 50%;
margin-left: -512px;
position: absolute;
Run Code Online (Sandbox Code Playgroud)

但这具有相同的效果。我也试过添加视口元标记:

<meta name="viewport" content="width=device-width, initial-scale=1">
Run Code Online (Sandbox Code Playgroud)

它也无济于事。我的设备具有 1920x1080 的硬件分辨率,它确实显示实际宽度约为 1200 像素左右的页面,但“设备宽度”默认为 640 像素,如果我使用多点触控缩放页面,它仍将左边框保留在初始位置。

对我来说,最好的目标是将页面固定在某个分辨率(1200 像素就可以了,我的任务不需要缩放)并且块居中。但是我没有看到将“设备宽度”设置为真实硬件像素大小并锁定缩放的方法......(我知道如何锁定缩放,但它对分辨率和居中没有帮助)。

可以轻松复制的页面示例:http: //37.48.93.204/androidtest.htm

它在桌面 Chrome 上运行良好,但在 Android Chrome 上描述了问题。

html css android google-chrome center

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

C#WPF应用程序使用太多内存而GC.GetTotalMemory()为低

我写了两个线程的WPF应用程序 - 主线程是GUI线程,另一个线程是worker.
App有一个带有一些控件的WPF表单.有一个按钮,允许选择目录.选择目录后,应用程序将扫描该目录中的.jpg文件,并检查其缩略图是否在哈希表中.如果他们是,它什么都不做.否则它将他们的完整文件名添加到工作队列.
Worker正在从这个队列中获取文件名,加载JPEG图像(使用WPF的JpegBitmapDecoder和BitmapFrame),制作它们的缩略图(使用WPF的TransformedBitmap)并将它们添加到哈希表中.
一切正常,除了这个应用程序在为大图像(如5000x5000像素)制作缩略图时的内存消耗.我在表单上添加了文本框以显示内存消耗(GC.GetTotalMemory()和Process.GetCurrentProcess().PrivateMemorySize64)并且非常惊讶,因为GC.GetTotalMemory()保持接近1-2 MB,而私有内存大小不断增长,特别是在加载新图像时(每张图像约+ 100Mb).
即使在加载所有图像,制作它们的缩略图并释放原始图像之后,私有内存大小仍保持在~700-800Mbytes.我的VirtualBox仅限于512Mb的物理内存,VirtualBox中的Windows开始交换很多来处理这种巨大的内存消耗.我想我做错了什么,但我不知道如何调查这个问题,因为根据GC,分配的内存大小非常低.

附加缩略图加载器类的代码:

class ThumbnailLoader
{
    Hashtable thumbnails;
    Queue<string> taskqueue;
    EventWaitHandle wh;
    Thread[] workers;
    bool stop;
    object locker;
    int width, height, processed, added;

    public ThumbnailLoader()
    {
        int workercount,i;
        wh = new AutoResetEvent(false);
        thumbnails = new Hashtable();
        taskqueue = new Queue<string>();
        stop = false;
        locker = new object();
        width = height = 64;
        processed = added = 0;
        workercount = Environment.ProcessorCount;
        workers=new Thread[workercount];
        for (i = 0; i < workercount; i++) {
            workers[i] = …
Run Code Online (Sandbox Code Playgroud)

c# wpf memory-leaks

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