- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
首先,我为我糟糕的英语感到抱歉:'(。
我正在开发一个客户端,用于将 POST 消息发送到 Azure AppService 中托管的 WebAPI。我读到最佳实践是使用单例模式,所以我就这样开发了。
公共(public)静态类UtilHTTP{
private static readonly ConcurrentDictionary<string, HttpClient> dicClient = new ConcurrentDictionary<string, HttpClient>();
public static string PostSingleton(string url, string contentType, string accept, string rq, Dictionary<string, string> headers)
{
Task<string> response = Fetch(url, contentType, accept, rq, headers);
response.Wait();
return response.Result;
}
private static HttpClient GetdicClient(string url, string contentType, string accept)
{
string key = string.Format("{0}#{1}#{2}", url, contentType, accept);
if (!dicClient.ContainsKey(key))
{
dicClient.GetOrAdd(key, new HttpClient());
if (!string.IsNullOrEmpty(accept))
{
dicClient[key].DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(accept));
}
}
return dicClient[key];
}
private static async Task<string> Fetch(string url, string contentType, string accept, string rq, Dictionary<string, string> headers)
{
//_http.Timeout = new TimeSpan(0,0,6);
HttpContent content;
if (string.IsNullOrEmpty(contentType))
{
content = new StringContent(rq, Encoding.UTF8);
}
else
{
content = new StringContent(rq, Encoding.UTF8, contentType);
}
if (headers != null)
{
foreach (KeyValuePair<string, string> h in headers)
{
content.Headers.Add(h.Key, h.Value);
}
}
HttpResponseMessage response = await GetdicClient(url, contentType, accept).PostAsync(url, content);
string resultContent = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
{
resultContent = response.ReasonPhrase;
}
return resultContent;
}
}
我在 AppService 中有两个服务实例,但所有请求都发送到同一个实例,因此我无法扩展服务并且性能也不是很好。
代码有问题吗?您认为是服务器端的问题吗?我必须使用其他模式吗?
非常感谢!
最佳答案
乍一看,您似乎正确地执行了单例 HttpClient
(每个客户端)。我能看到的唯一问题是,如果您多次调用同一 URL,并且 URL 中包含不同的参数,这些参数将导致创建一个新客户端。不过,我不知道您正在这样做,所以这里可能没有问题。
您讨论的另一个问题(关于前往应用服务的同一实例的所有请求)可能与 ARR 关联性(所谓的“粘性 session ”)有关。检查您的应用服务设置(配置 -> 常规设置)确保它已关闭:
关于azure - 单例 httpClient 到 AppService 的单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66316328/
进程文件: appservices or appservices.exe 进程名称: Appservices 进程类别:存在安全风险的进程 英文描述: AppServices.exe is
有没有办法在 Azure 应用服务中将 Word 文档转换为 PDF?我无法使用任何 Office 库,因为我不需要任何 Office 依赖项。许多第三方解决方案似乎都使用 GDI+,但这在 Az
使用“数组”类型的参数替换为网站槽应用程序设置的 AppService 部署失败,并出现以下错误。 2019-10-20T10:25:46.0572018Z ##[error]BadRequest:
我需要使用 AppService 访问虚拟机。当我尝试与 VNET 集成时,我得到了这个信息。 它只是说 VNet 配置失败,仅此而已。 AppService 计划属于高级版。 这可能是什么原因造成的
我的 .NET Core 6 应用服务在 Program.cs 中具有以下设置: var builder = WebApplication.CreateBuilder(args); builder.S
我的 .NET Core 6 应用服务在 Program.cs 中具有以下设置: var builder = WebApplication.CreateBuilder(args); builder.S
我有一个作为 Azure 应用服务(一项 Web 作业)托管的 .Net 应用,它从一个事件中心读取数据并对这些消息执行一些操作。此应用不受 CPU 或内存限制,相反,我希望根据事件中心传入消息的数量
有没有办法从负载均衡器中排除 AppService 实例: 通过门户网站? 通过 SDK? 通过 SDK 是理想的选择,一旦所有初始化完成,我们就可以设置 MakeVisibleToLoadBalan
我已使用 Github Actions 将基于 Docker 化的 Django 的 Web 应用程序部署到 AppService (Linux)。 我的应用程序有一个 4.2MB 的 .csv 文件
我们的项目正处于起步阶段,希望确定我们可以利用 Azure 提供的哪些技术。首先,我们将拥有移动应用程序,然后是网络应用程序。为此我们需要 API。我真的不想为移动和网络创建单独的 api。这就是为什
首先,我为我糟糕的英语感到抱歉:'(。 我正在开发一个客户端,用于将 POST 消息发送到 Azure AppService 中托管的 WebAPI。我读到最佳实践是使用单例模式,所以我就这样开发了。
我有一个旧版本的 appservice Plan,它连接到 VNET/Subnet 。当我想将其升级到 VNET 集成时,应用程序服务计划被完全删除。但是,当我尝试使用相同的 VNET/子网重新部署应
作为部署的一部分,我想调用应用程序中的某个端点来对其进行冒烟测试。但我们正在使用访问限制,并且来自 Azure Devops Release Pipeline 的调用被拒绝。有办法解决这个问题吗? 最
我有一个旧版本的 appservice Plan,它连接到 VNET/Subnet 。当我想将其升级到 VNET 集成时,应用程序服务计划被完全删除。但是,当我尝试使用相同的 VNET/子网重新部署应
作为部署的一部分,我想调用应用程序中的某个端点来对其进行冒烟测试。但我们正在使用访问限制,并且来自 Azure Devops Release Pipeline 的调用被拒绝。有办法解决这个问题吗? 最
考虑以下示例:https://github.com/StefanWickDev/UWP-FullTrust/tree/master/UWP_FullTrust_3 UWP应用创建AppService时
我使用asp.net webapi编写了一个api,并将其部署在azure中作为Appservice。我的 Controller 的名称是 TestController,我的操作方法如下所示。
如何在UWP AppService中访问系统盘(C盘、D盘)文件。示例:我想从 UWP AppServices 访问“C:\Test\sample.txt”文件。 我试过下面的代码。但抛出错误(附加信
我无法通过 ssh 访问 Azure 应用服务 WordPress 站点,并且它似乎已在其中被禁用。 引用以下网址来设置网站。 https://learn.microsoft.com/en-us/az
我们面临的挑战是实现既可以部署在 Azure 云(按需)也可以部署在本地 LAN 场景中的服务。这对于 .NET-Core、SQL-Server、Redis 等来说没问题。 我们缺少的是功能即服务或
我是一名优秀的程序员,十分优秀!