我正在尝试从Visual Studio Web项目连接到Azure Redis缓存(预览)的实例。
我收到以下错误:"无法加载文件或程序集'用户传递的授权令牌无效"。
我做了以下事情: 1)登录Azure Portal并创建新的 Redis缓存预览 2)打开Visual Studio并创建新项目(Web MVC) 3)管理Nuget包 - 全部更新 4)安装包 - " Windows Azure缓存版本2.2.0.0" 5)打开Web.Config,在dataCacheClients部分中执行以下操作:
<dataCacheClients>
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="mycache.redis.cache.windows.net" />
<securityProperties mode="Message" sslEnabled="false">
<messageSecurity authorizationInfo="xxxxxxxmykeyxxxxxxxx"/>
</securityProperties>
</dataCacheClient>
</dataCacheClients>
6)将HomeController.cs更改为以下内容:
using Microsoft.ApplicationServer.Caching;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace CacheRedisTest.Controllers
{
public class HomeController : Controller
{
static DataCacheFactory myFactory;
static DataCache myCache;
public ActionResult Index()
{
if (myCache == null)
{
myFactory = new DataCacheFactory();
myCache = myFactory.GetDefaultCache();
}
return View();
}
}
}
我是否需要一些特定于Redis的其他nuget包?另外,我在哪里放置Azure控制台中提到的端口号?
感谢您阅读
答案 0 :(得分:9)
对于Azure Redis缓存,您需要使用RedEx客户端库,如StackExchange.Redis。 &#34; Windows Azure缓存&#34;客户端库特定于Azure托管缓存。
将StackExchange.Redis NuGet包添加到项目后,使用ConnectionMultiplexer对象连接到Redis:
var cm = ConnectionMultiplexer.Connect("mycache.redis.cache.windows.net,ssl=true,password=<password>");
var db = connection.GetDatabase();
db.StringSet("key", "value");
var key = db.StringGet("key");
链接更多信息:
http://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/ https://github.com/StackExchange/StackExchange.Redis
答案 1 :(得分:2)
您不需要在web.config中使用dataCacheClients - 您不希望在源中检查秘密。您可以在MVC控制器中像这样配置它
public class MoviesController : Controller
{
private MovieDBContext db = newMovieDBContext();
private static ConnectionMultiplexer connection;
private static ConnectionMultiplexer Connection
{
get
{
if (connection == null || !connection.IsConnected)
{
connection = ConnectionMultiplexer.Connect(
"<your Cache>.redis.cache.windows.net,ssl=true," +
"password=<Your password>");
}
return connection;
}
}
同样,请勿将您的帐户/密码放入源代码中 - 使用 ConfigurationManager.AppSettings [&#34;帐户&#34], ConfigurationManager.AppSettings [&#34; Password&#34;] - 并将配置选项卡中的值存储在Azure门户中
有关详细信息,请参阅http://azure.microsoft.com/blog/2014/06/05/mvc-movie-app-with-azure-redis-cache-in-15-minutes/
答案 2 :(得分:0)
这是一篇关于“如何使用Redis缓存”的文章 - http://azure.microsoft.com/en-us/documentation/articles/cache-dotnet-how-to-use-azure-redis-cache/