从Web浏览器调用时,Azure应用程序服务无法连接到Azure Redis
我有一个REST API服务应用程序,它使用Asp.net核心,托管在Azure应用程序服务上。 我正在添加Azure Redis作为缓存机制 我使用本地redis在本地机器上测试了该应用程序,它运行良好。 我将Web服务部署到Azure应用程序服务,并对其进行了测试 当我尝试使用Postman测试服务时,它工作正常,正在填充缓存,并从缓存中读取数据 但是当我运行前端应用程序时,它是一个调用后端服务的JavaScript单页应用程序 我不是从前端查询Redis。但是从后端.net应用程序 对服务的调用因此错误而失败从Web浏览器调用时,Azure应用程序服务无法连接到Azure Redis,azure,asp.net-core,redis,azure-web-app-service,azure-redis-cache,Azure,Asp.net Core,Redis,Azure Web App Service,Azure Redis Cache,我有一个REST API服务应用程序,它使用Asp.net核心,托管在Azure应用程序服务上。 我正在添加Azure Redis作为缓存机制 我使用本地redis在本地机器上测试了该应用程序,它运行良好。 我将Web服务部署到Azure应用程序服务,并对其进行了测试 当我尝试使用Postman测试服务时,它工作正常,正在填充缓存,并从缓存中读取数据 但是当我运行前端应用程序时,它是一个调用后端服务的JavaScript单页应用程序 我不是从前端查询Redis。但是从后端.net应用程序 对服务
Timeout performing EVAL, inst: 1,
clientName: <.....>, serverEndpoint: Unspecified/my-redis.redis.cache.windows.net:6380,
keyHashSlot: 15126 (Please take a look at this article for some common client-side issues that can cause timeouts: http://stackexchange.github.io/StackExchange.Redis/Timeouts)
和在控制器中(ProductController)
附:这个错误在网上提到了一篇文章。
我读了这篇文章,什么也没跳出来。我的所有服务的大小都小于5k,只有一个服务的大小介于250k和300k之间,我的所有呼叫都失败。错误本身描述了“请参阅本文了解一些常见的客户端问题”。你能分享你用来打电话的客户端代码吗?我添加了客户端脚本。我读了错误中提到的那篇文章,但没有发现任何与我相关的东西。我的json返回值对于所有服务都小于5k,除了一个是250k到300k。
public void ConfigureServices(IServiceCollection services)
{
...
services.AddDistributedRedisCache(options => {
options.Configuration = Configuration.GetConnectionString("AzureCache");
options.InstanceName = "master";
});
}
using Microsoft.Extensions.Caching.Distributed;
public class ProductController: ControllerBase
{
IDistributedCache _cashe;
IDataRepository _repo;
public ProductController (IDistributedCache cache, IDataRepository repo)
{
_cache = cache;
_repo = repo;
}
[HttpGet]
public Async Task<IActionResult> GetProductions([FormBody] DataRequest request)
{
string data = _cache.GetString(request.AsKey());
if (data == null)
{
data = _repo.getData(request);
_cache.SetString(request.AsKey());
}
return Ok(data);
}
}
const request = axios.post('https://mydata.myserver.azure.com', reqBody, headers);
request.then(res => {
.... process the data
});