I have the following code:
public static class SessionManager
{
private static readonly Cache cache = new Cache();
private static readonly TimeSpan TokenTimeout = TimeSpan.FromDays(7);
private static void RemoveCallback(string key, object value, CacheItemRemovedReason reason)
{
...
}
public static string CreateToken(string objectGUID)
{
var sessionGUID = Guid.NewGuid().ToString();
...
if(objectGUID==null) throw new ArgumentNullException("objectGUID")
SessionManager.cache.Add(sessionGUID, objectGUID, null, Cache.NoAbsoluteExpiration, TokenTimeout, CacheItemPriority.Normal, SessionManager.RemoveCallback);
}
This runs on my Windows 10 and some Windows 2012 machines. I have now deployed to a Windows 2008R2 machine and I am getting the error:
System.NullReferenceException
Object reference not set to an instance of an object.at System.Web.Caching.Cache.Add(String key, Object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback) at TestApp.App_Start.SessionManager.CreateToken(String objectGUID) at TestApp.Controllers.LoginController.Login(HttpRequestMessage req) ...
So no parameter except the constant null
can be null.
Where am I wrong?