小编m1n*_*keh的帖子

Json 反序列化受保护的属性

我有一个类属性集,并在构造函数中固定,下面的示例是一个Guid.NewGuid()..

理由是只允许类在创建时填充..所以它在构造函数中设置,并且只标记为get;- 工作正常,直到我序列化/反序列化为 Json。

似乎因为没有set;反序列化失败..并且构造函数介入并创建了一个新的guid

我已经尝试过内部、私有和受保护的 set .. 但所有结果都导致属性的再生,我可以让它工作的唯一方法是将 Id 标记为{get;set;}

class Foo
{
    public Foo() => Id = Guid.NewGuid().ToString();
    public string Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这意味着您可以简单地执行以下操作:

var obj = new Foo();
obj.Id = "Any Old Rubbish";
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题?

短样本:

class Program
{
    static void Main()
    {
        var obj = new Foo();
        Console.WriteLine(obj.Id);

        var serialize = JsonConvert.SerializeObject(obj);
        var deserialize = JsonConvert.DeserializeObject<Foo>(serialize);
        Console.WriteLine(deserialize.Id);

        Console.ReadLine();
    }
}

class Foo
{
    public Foo() => …
Run Code Online (Sandbox Code Playgroud)

c# json.net

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

Azure SQL 数据仓库代理键

因此,Azure SQL 数据仓库不支持标识列,因此处理代理键很棘手。有人对此有任何大胆的解决方案吗?

是我发现的最好的,而且非常可怕。

data-warehouse azure parallel-data-warehouse azure-synapse

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

Polly 重试除特定条件外的所有异常

Polly 中是否有一种方法可以重试除指定的异常之外的所有异常.. 例如:

var p = Policy
    .Handle<HttpListenerException>(e => !(e.NativeErrorCode == 1))
    .Or<Exception>()
    .RetryAsync();
Run Code Online (Sandbox Code Playgroud)

在这里,我选择了一个略显做作的情况,我会想不是在重试NativeErrorCode == 1

我最初希望这会在 1 以外的任何值以及由.Or<Exception>()..处理的任何其他异常时重试。

实际发生的是什么,即使它被排除在上面,.Or<Exception>也会捕获NativeErrorCode == 1?我认为..

我考虑过的一种选择,但没有经过测试......(没有错误检查;p)

var p = Policy
    .Handle<Exception>(e => SomethingMoreComplex(e) == true)
    .RetryAsync();

private bool SomethingMoreComplex(Exception e)
{
    if (e is HttpListenerException t)
    {
        if (t.NativeErrorCode == 1) return false;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

那是线程安全的吗?:|

c# polly

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

反序列化 Avro Spark

我正在使用以下代码将数据流推送到 Azure EventHub Microsoft.Hadoop.Avro.. 此代码每 5 秒运行一次,并简单地插入相同的两个 Avro 序列化项目:

  var strSchema = File.ReadAllText("schema.json");
  var avroSerializer = AvroSerializer.CreateGeneric(strSchema);
  var rootSchema = avroSerializer.WriterSchema as RecordSchema;

  var itemList = new List<AvroRecord>();

  dynamic record_one = new AvroRecord(rootSchema);
  record_one.FirstName = "Some";
  record_one.LastName = "Guy";
  itemList.Add(record_one);

  dynamic record_two = new AvroRecord(rootSchema);
  record_two.FirstName = "A.";
  record_two.LastName = "Person";
  itemList.Add(record_two);

  using (var buffer = new MemoryStream())
  {
      using (var writer = AvroContainer.CreateGenericWriter(strSchema, buffer, Codec.Null))
      {
          using (var streamWriter = new SequentialWriter<object>(writer, itemList.Count))
          {
              foreach (var item in …
Run Code Online (Sandbox Code Playgroud)

c# apache-spark azure-stream-analytics spark-avro azure-databricks

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

在调试测试时从local.setting.json读取值

在运行或调试测试时,我似乎无法从azure函数中的此文件中读取任何内容,但是在本地调试整个应用程序时,它可以正常工作。.有人能解释为什么吗?

{
  "IsEncrypted": false,
  "Values": {
    "xyz": 123
  }
}

var res = ConfigurationManager.AppSettings.Get("xyz");
Run Code Online (Sandbox Code Playgroud)

ty ..

我可疑的是,这是由于从另一个项目(测试项目)启动了“调试”,而local.settings.json没有与正在测试的项目捆绑在一起吗?

c# json azure azure-functions

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

RESTful POST 响应

我有一个非常简单的 RESTful 服务,它通过 POST 接收一些表单数据,其目的是简单地将文本正文(具有唯一的 id)保留在云存储(Amazon S3、Azure Blob 存储等)中作为文件...

所以,问题是..如果一切都很好,并且我向调用者返回 200 响应,那么我应该以正文形式向调用者返回什么?

任何事物?没有什么?

如果这是创建数据库记录..也许该新记录的 id 可能有用..但在这种情况下,我认为简单的 HttpRepsone 代码就足够了?

有人同意、不同意或有支持讨论的链接吗?

我应该补充一点,对该服务的请求几乎是......移交,然后去......他们实际上并不需要我建议发回的唯一ID......这更多的是为了“完整性”。

rest httpresponse httprequest

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

安排Azure CLI脚本

我已经对此进行了搜索,但是是否存在有关如何计划使用Azure CLI命令运行的作业的文档?

我想在云中运行,但是azure自动化尚不支持CLI(因此),因此我倾向于使用Azure Scheduler ...,但不知道其优缺点...

或者,是否可以在Azure Cloud Shell中以某种方式创建计划的作业...我认为这是由某些VM支持的,因此,如果它是基于Linux的,我们可以加快cron作业的时间...我不真的不知道该怎么做。

azure azure-cli

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

Azure 函数存储帐户

在我们的解决方案中,我们有三个功能应用程序,其中两个在消费计划上运行,其中一个由于外部使用而移动到同一计划有点麻烦。第三个在应用程序服务计划上运行,因为它有额外的需求在资源、控制和连接等方面。

Q1:所有这些是否可以(例如,可以)共享同一个存储帐户吗?

Q2:如果不能,至少消费功能应用可以共享同一个存储帐户吗?

Q3:如果所有(或部分)功能应用程序配置为使用相同的存储帐户进行设置,是否存在相互干扰的风险:

  • AzureWeb作业仪表板
  • AzureWeb作业存储
  • WEBSITE_CONTENTAZUREFILECONNECTIONSTRING

提前。

azure-functions

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

使用 AWSSDK.S3 使用 C# 对 Amazon S3 存储桶进行身份验证

编辑:-需要将在 Amazon S3 上创建的一些文件移动到 Azure Blob 存储,我之前没有使用过 Amazon S3,并且提供的详细信息包括我不是 100% 的“路径”如何使用使用 C# 中的 AWSSDK.S3 NuGet 包..

因此,之前从未使用过 Amazon S3,并尝试构建一个 azure 辅助角色(或 webjob)来监视此存储位置并将文件或文件在出现时移动到 Azure Blob 存储 - 似乎很容易,但我失败了S3 的身份验证阶段,问题是我拥有的“路径”变量。

我已经使用 Cyber​​duck 测试了我的连接,我有以下参数:

Access Key Id, Secret Access Key, and Path.. the Path is just "folder/folder/"
Run Code Online (Sandbox Code Playgroud)

如果没有路径,我会收到来自 Cyber​​duck 的拒绝访问响应......好吧,这是意料之中的 - 但我无法弄清楚如何将路径嵌入到 Visual Studio AWS 凭证管理器或测试控制台工具中的代码中我已经书面..

处理凭证的 AWS Explorer 只允许我输入:

Access Key Id, Secret Access Key, Account Number ????
Run Code Online (Sandbox Code Playgroud)

我需要手动编码吗?一直在回顾这个,但今天真的没有足够的时间来消化它:

https://blogs.aws.amazon.com/net/post/Tx1310VG2O81PSY/Referencing-Credentials-using-Profiles
Run Code Online (Sandbox Code Playgroud)

干杯,

泰。

c# amazon-s3 azure amazon-web-services aws-sdk

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

Azure EventHub和功能LeaseLostException

关于我们反复看到的以下异常,请在我们的消费计划功能应用程序上看到异常奇怪的行为:

  • Microsoft.Azure.EventHubs.RecieverDisconnectedException (已创建新的具有较高纪元“ 2”的接收器,因此当前具有纪元“ 1”的接收器已断开连接。)
  • System.Net.WebException (引发了类型为“ Microsoft.ServiceBus.Messaging.LeaseLostException”的异常。)

只要我们强调功能,即在短时间内从0到50,000个事件发生,我们就会得到这些异常,但是它们与匹配我们的Function App。的cloud_role挂钩。这会让我相信这是一个主机错误。

阅读各种文档,例如(https://docs.microsoft.com/zh-cn/azure/event-hubs/event-hubs-features),我我知道EventHub接收器是如何工作的[但老实说,我是在行之间进行读取(目前还不清楚),因为我的一个接收者依赖于一个消费者组来管理从EventHub分区(我使用的是32个)中读取一批消息。

我的假设是,在负载下,单个消费者组的功能实例太多,无法“应付”,它只是反复地切换分区的租用...但是,在我的测试场景中,我删除了所有逻辑除了在事件中心之间中继消息外,其他功能还起作用,并且即使在EventHub上只有4个分区,错误仍然存​​在

为了拼命地查看是否在更高版本中得到解决,我在功能v2中模拟了完全相同的功能,并获得了与.net核心等效的功能。

  1. Microsoft.Azure.EventHubs.RecieverDisconnectedException (已创建新的具有较高纪元“ 2”的接收器,因此当前具有纪元“ 1”的接收器已断开连接。)
  2. Microsoft.WindowsAzure.Storage.StorageException (指定的租约ID与Blob的租约ID不匹配。)
  3. System.ArgumentOutOfRangeException (因为..而忽略了偏移量为1184072 /序列号为1038的过时检查点。)

所以有人可以吗

  • 解释这到底是真正的幕后事
  • 如果它们不是实际的“真实”错误,并且它们只是管理事情的主人,请帮助我抑制它们。

这些异常真的很烦人,因为要真正看到真正的未处理异常非常棘手。

azure-eventhub azure-functions

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

无法推断Lambda表达式类型参数

可能有人帮助我了解在下面的例子中实际上是怎么回事,这样我可以在未来的自己..因为明白为什么错误获取或如何解决它,而不只是重新写...

给出这种方法方法:

public static void DoNothing(string v)
{
    // do nothing
}
Run Code Online (Sandbox Code Playgroud)

试图像这样执行它会产生错误" 无法推断出方法的类型参数..请尝试明确指定类型参数. ":

myList.Select(x => DoNothing(x)); // does not work
var r = myList.Select(x => DoNothing(x)); // just a ?
Run Code Online (Sandbox Code Playgroud)

但是,只要它返回一些东西,即:

private static string ReturnString(string v)
{
    return v;
}
Run Code Online (Sandbox Code Playgroud)

这很好用:

myList.Select(x => ReturnString(x)); // works
var r = myList.Select(x => ReturnString(x)); // IEnumerable<string>
Run Code Online (Sandbox Code Playgroud)

所以我想这与void返回类型有关?

我可以永远不会工作,因为没有任何东西返回,或者是否有一些我缺少/无法弄清楚的神奇语法(!)

唯一的方法我似乎可以得到这个功能如下:

foreach (var item in myList)
{
    DoNothing(item);    // works fine.
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

c# lambda

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