【问题标题】:Can I able to use default proxy for cosmos db project我可以为 cosmos db 项目使用默认代理吗
【发布时间】:2019-11-08 09:28:25
【问题描述】:

我已经使用 cosmos db 和 asp.net core 完成了一项服务。对于 WiFi,它正在工作,但是当我尝试使用默认代理时,它会给出错误。

SocketException: Resource temporarily unavailable
System.Net.Http.ConnectHelper.ConnectAsync(string host, int port, CancellationToken cancellationToken)
HttpRequestException: Resource temporarily unavailable
System.Net.Http.ConnectHelper.ConnectAsync(string host, int port, CancellationToken cancellationToken)

DocumentClient 创建代码示例:

  public async Task<IEnumerable<Product>> FetchProductListAsync(
         Guid? itemId)
        {

            var feedOptions =
                  new FeedOptions
                  {
                      MaxItemCount = -1,
                      EnableCrossPartitionQuery = true
                  };

            var query =
                $"SELECT  product.Id,product.Name,product.MethodOfPreparation,product.Addons,product.CurrentQuantity,product.Tag,product.Unit,product.Price FROM catalog join industry in catalog.Industy join category in industry.Category join Subcategory in category.Subcategory  join product in Subcategory.Product where catalog.id = '" + itemId + "'";

            var queryDefinition =
                new SqlQuerySpec(query);



            var orderDocumentQuery =
                 _docClient.CreateDocumentQuery<Product>(
                     UriFactory.CreateDocumentCollectionUri(
                         _azureCosmosDbOptions.Value.DatabaseId, "catalog"), queryDefinition, feedOptions)
                     .AsDocumentQuery();

           var childrenSqlQuery = _docClient.CreateDocumentQuery(UriFactory.CreateDocumentCollectionUri(_azureCosmosDbOptions.Value.DatabaseId, "catalog"), query).ToString();


            Console.WriteLine(childrenSqlQuery);
            Console.WriteLine(childrenSqlQuery);
            var orderList =
                new List<Product>();


            while (orderDocumentQuery.HasMoreResults)
            {
                orderList.AddRange(
                    await orderDocumentQuery.ExecuteNextAsync<Product>());
                Console.WriteLine(orderList);
            }

            return orderList;
        }

我正在使用 DucumentDb.Core 2.4.1,请告诉我。

【问题讨论】:

标签: azure-cosmosdb asp.net-core-webapi


【解决方案1】:

在node js sdk中,可以直接设置ProxyUrl属性。(How to use DocumentDB behind a Proxy in NodeJS)

但是,它在.NET sdk 中没有这样的属性。您可以从这种情况下尝试以下配置:CosmosDB C# SDK ProyUrl missing

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
        <proxy usesystemdefault="True" />
    </defaultProxy>
</system.net>

但是,我注意到它只支持.net,不支持.net core,来自这个trace。所以,请参考这个案例:asp.net core defaultProxy

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-30
    • 2016-11-02
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 2012-06-24
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多