在我们的一个生产服务器上,偶尔会在会话模块中将请求卡在RequestAquireState中.因为它是一个MVC请求,它不会超时,所以我们有时会得到在后台运行几个小时的请求.
我们在.net4和IIS 7.5上使用标准的asp.net会话模块我们正在使用InProc.
为什么会卡住?
我有一个使用postsharp实现的简单Cache属性.当我设置缓存策略时,我希望能够设置如下所示的更新回调.
private static CacheItemPolicy GetCachePolicy(CacheType type, int expiry)
{
var policy = new CacheItemPolicy();
switch (type)
{
case (CacheType.Absolute):
policy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(expiry);
policy.UpdateCallback = new CacheEntryUpdateCallback(UpdateHandler);
break;
case (CacheType.Sliding):
policy.SlidingExpiration = new TimeSpan(0, 0, 0, expiry);
break;
}
return policy;
}
Run Code Online (Sandbox Code Playgroud)
如果我只想这样做,这很好:
private static void UpdateHandler(CacheEntryUpdateArguments arguments)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望能够动态传递委托/方法/方法名称和参数并执行它.所以我希望看到类似的东西(显然语法错误):
private static CacheItemPolicy GetCachePolicy(CacheType type, int expiry Func<?,?> method)
{
var policy = new CacheItemPolicy();
switch (type)
{
case (CacheType.Absolute):
policy.AbsoluteExpiration = DateTimeOffset.Now.AddSeconds(expiry);
policy.UpdateCallback = new CacheEntryUpdateCallback(method); …Run Code Online (Sandbox Code Playgroud) 我们正在使用specflow采用BDD.我们遇到的问题是不能期望产品所有者和管理者进入Visual studio/svn并编辑功能或场景.
我们可以让pm在Google文档中完成所有操作,然后我们可以将它们复制并粘贴到功能文件中,但这很容易出错并且会很快失去同步.
管理这个的最佳做法是什么?