小编msl*_*lot的帖子

解释VERP

我正在制作一个反弹检测程序,它会读取反弹邮件.我们的设置是我们发送电子邮件,在发送的邮件中添加noreply@domain.tl.一些收件人不再存在,因此我们想要阅读反弹,并检测它被发送给谁.我现在正在谷歌上搜索一两天,这已经崩溃了.现在我偶然发现了一个名为VERP,可变包络返回路径的东西.但是,有人在这里以"人"的方式向我解释技术吗?

我以这种方式理解:将邮件发送给收件人,并将"FROM:"标头设置为noreply+recipient+recipient_domain.tl@domain.tl.

但是,如果收件人不存在,收件人邮件服务器如何扣除FROM标头中的返回地址?它是从Return-Path中扣除它而不是在发送的邮件中设置的吗?

希望有人理解我的问题,并且可以解释它是如何工作的,或者可以告诉我一种替代方法.

email bounce verp

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

Azure SQL 故障转移组,宽限期是什么意思?

我目前正在阅读:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auto-failover-group,我很难理解自动故障转移策略:

默认情况下,故障转移组配置有自动故障转移策略。SQL 数据库服务在检测到故障并且宽限期已过后触发故障转移。由于影响的规模,系统必须验证 SQL 数据库服务的内置高可用性基础结构无法缓解中断。如果要从应用程序控制故障转移工作流,可以关闭自动故障转移。

在 ARM 模板中定义故障转移组时:

{
  "condition": "[equals(parameters('redundancyId'), 'pri')]",
  "type": "Microsoft.Sql/servers",
  "kind": "v12.0",
  "name": "[variables('sqlServerPrimaryName')]",
  "apiVersion": "2014-04-01-preview",
  "location": "[parameters('location')]",
  "properties": {
    "administratorLogin": "[parameters('sqlServerPrimaryAdminUsername')]",
    "administratorLoginPassword": "[parameters('sqlServerPrimaryAdminPassword')]",
    "version": "12.0"
  },
  "resources": [
    {
      "condition": "[equals(parameters('redundancyId'), 'pri')]",
      "apiVersion": "2015-05-01-preview",
      "type": "failoverGroups",
      "name": "[variables('sqlFailoverGroupName')]",
      "properties": {
        "serverName": "[variables('sqlServerPrimaryName')]",
        "partnerServers": [
          {
            "id": "[resourceId('Microsoft.Sql/servers/', variables('sqlServerSecondaryName'))]"
          }
        ],
        "readWriteEndpoint": {
          "failoverPolicy": "Automatic",
          "failoverWithDataLossGracePeriodMinutes": 60
        },
        "readOnlyEndpoint": {
          "failoverPolicy": "Disabled"
        },
        "databases": [
          "[resourceId('Microsoft.Sql/servers/databases', variables('sqlServerPrimaryName'), variables('sqlDatabaseName'))]"
        ]
      },
      "dependsOn": [
        "[variables('sqlServerPrimaryName')]",
        "[resourceId('Microsoft.Sql/servers/databases', …
Run Code Online (Sandbox Code Playgroud)

azure azure-sql-database automatic-failover

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

为什么stringstreams rdbuf()和str()给我不同的输出?

我有这个代码,

int main()
{
    std::string st;
    std::stringstream ss;
    ss<<"hej hej med dig"<<std::endl;

    std::getline(ss,st,' ');
    std::cout <<"ss.rdbuf()->str() : " << ss.rdbuf()->str();
    std::cout <<"ss.rdbuf() : " << ss.rdbuf();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

给我这个输出

ss.rdbuf() - > str():hej hej med dig

ss.rdbuf():hej med dig

但那是为什么呢?是因为运算符<str()的ostreams定义给了我不同的输出.在我看来,即使我使用了getline,输出应该是相同的.

c++ std stringstream getline sstream

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

如何使用msbuild首先构建依赖项目

我刚开始研究msbuild,因为我想制作自己的构建脚本.现在我能够创建只编译一个项目的构建脚本,但是如何处理依赖项呢?

例如,如果我有两个使用这两个msbuild脚本构建的项目怎么办?

  1. projectA.xml
  2. projectB.xml

我怎么告诉msbuild我在执行projectB.xml时应该首先执行projectA.xml?

我已经在谷歌搜索了很多,但它似乎没有任何像我这样的初学者理解的东西.我会对描述这篇文章的链接感到高兴,或者只是一个小代码示例.

我想要这个控件的原因是因为我正在构建一个库.该图书馆由几个项目组成.开发人员应该能够提取库的源代码并仅构建他想要的库.

实际上我希望能够从不同的项目中构建.net模块.这就是为什么我希望能够运行自定义的msbuild脚本.

c# msbuild .net-4.0

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

Azure 应用服务:WEBSITE_RUN_FROM_PACKAGE - 旧的 zip 文件是否会被删除?

当我使用 Azure DevOps 将 zip 文件部署到 d:\home\data\SitePackages 时,它还会设置 packagename.txt 中的文件名并将 WEBSITE_RUN_FROM_PACKAGE 设置为 1,但是删除旧的 zip 文件怎么样?Azure 或 DevOps 可以处理这个问题吗?还是需要我自己做?

azure azure-web-app-service azure-devops

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

Logger.LogDebug 与 Debug.WriteLine

我有这个程序

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

namespace debuglogtest
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureServices((hostContext, services) =>
                {
                    services.AddHostedService<Worker>();
                });
    }
}
Run Code Online (Sandbox Code Playgroud)

和这个工人

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;

namespace debuglogtest
{
    public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;

        public Worker(ILogger<Worker> logger)
        {
            _logger = logger; …
Run Code Online (Sandbox Code Playgroud)

c# logging .net-core

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

关于volatile和Memory-Barrier我不明白的是

循环提升易失性读数

我已经阅读过很多地方,一个volatile变量不能从循环中提升或者如果,但我找不到这提到C#规范中的任何地方.这是隐藏的功能吗?

所有写入在C#中都是易失的

这是否意味着所有写入都没有相同的属性,就像使用volatile关键字一样?例如,C#中的普通写入具有发布语义?并且所有写入都会刷新处理器的存储缓冲区?

释放语义

这是一种正式的方式,说明当完成易失性写入时处理器的存储缓冲区被清空了吗?

获取语​​义

这是一种正式的说法是不应该将变量加载到寄存器中,而是每次从内存中获取它吗?

本文中,Igoro谈到"线程缓存".我完全明白这是想象的,但他实际上指的是:

  1. 处理器存储缓冲区
  2. 将变量加载到寄存器中而不是每次从内存中取出
  3. 某种处理器缓存(这是L1和L2等)

或者这只是我的想象力?

延迟写作

我读过许多写作可以延迟的地方.这是因为重新排序和存储缓冲区吗?

Memory.Barrier

我知道副作用是在JIT将IL转换为asm时调用"lock or",这就是为什么Memory.Barrier可以解决fx这个例子中对主内存(在while循环中)的延迟写入的原因:

static void Main()
{
  bool complete = false; 
  var t = new Thread (() =>
  {
    bool toggle = false;
    while (!complete) toggle = !toggle;
  });
  t.Start();
  Thread.Sleep (1000);
  complete = true;
  t.Join();        // Blocks indefinitely
}
Run Code Online (Sandbox Code Playgroud)

但情况总是这样吗?对Memory.Barrier的调用是否总是刷新存储缓冲区,将更新的值提取到处理器缓存中?我知道完整的变量不会被提升到寄存器中,而是每次都从处理器缓存中提取,但由于对Memory.Barrier的调用,处理器缓存会更新.

我在这里的冰上,还是我对volatile和Memory.Barrier的某种理解?

c# multithreading volatile memory-model memory-barriers

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

2个或更多进程如何与键盘交互?

我一直在思考键盘处理问题.它是如何工作的?我似乎无法向我提出一个很好的解释.

我知道每按一次键就会产生键盘中断.处理器停止正在处理的任何内容并从键盘缓冲区加载键盘数据,将其存储在系统级缓冲区中.

但接下来会发生什么?我们来看一个实际的例子吧.运行以下代码时会发生什么:

...
std::string s;
std::cin >> s;
....
Run Code Online (Sandbox Code Playgroud)

是否cin从系统级键盘缓冲区的用户级别表示中读取?这在我的头脑中是完全合理的,因为那时2或更多的进程可以从同一缓冲区中读取,并且通过这种方式我不会松开任何按键.但这样做有用吗?

我知道我的谈话非常笼统.我正在使用的操作系统是OS X.

c++ keyboard kernel buffering

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

将核心数据添加到我的iPhone应用程序

我以前来过这里,要求一个可以在数据库中存储对象的映射库.有人告诉我有关核心数据框架的信息.我已经读过一些关于它的内容,我很了解它.我创建了一些"测试核心数据项目",在那里我处理了简单的问题和模型ala Person和Group.但现在我想尝试将Core Data应用到我的一个小型iPhone应用程序中.我该怎么做呢?从NSManagedObject子类化并创建一个托管对象模型?我知道还有更多,但我还没有在谷歌苹果网站上找到任何东西.也许我在Google搜索和搜索时看错了方向.指向如何将Core Data添加到我的项目的文章/教程的链接将成为我的一天.

iphone xcode core-data

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

Azure docker:linuxFxVersion 与 DOCKER_CUSTOM_IMAGE_NAME

我在 Azure De Ops 中有以下三个发布步骤:

  1. AzureRmWebAppDeployment@4 - 将 Docker 映像部署到我的临时站点
  2. AzureResourceGroupDeployment@2,使用 ARM 模板部署所有应用程序设置和属性
  3. AzureAppServiceManage@0 - 它将暂存状态转换为生产状态

步骤 1 已应用,因此我确信 docker 映像已被拉至暂存槽(没有它且仅应用 ARM,交换会在拉动结束之前开始,我不喜欢这样)。第 2 步是确保所有环境变量和属性。步骤 1 添加 DOCKER_CUSTOM_IMAGE_NAME 环境变量,并由此触发 docker pull,但在步骤 3 中我手动设置 linuxFxVersion 属性。两者都指向相同的图像标签。我没有在 ARM 模板中设置 DOCKER_CUSTOM_IMAGE_NAME,因此当我部署 ARM 时,仅设置 linuxFxVersion。但本质上它没有拉取任何东西,因为步骤 2 已经拉取了镜像。

删除 DOCKER_CUSTOM_IMAGE_NAME 有什么问题吗?或者?linuFxVersion 和 DOCKER_CUSTOM_IMAGE_NAME 有什么区别?我是否需要两者,或者其中之一就足够了?

environment-variables azure docker azure-web-app-service azure-rm-template

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