1
在我的請求過濾器中,我在自定義會話中設置了一些屬性,我稍後從該服務中訪問該會話。這按預期工作。在服務之外訪問會話會創建重複
請求過濾:
public sealed class CustomAttribute:RequestFilterAttribute
{
public override void Execute(IRequest req, IResponse res, object requestDto)
{
var session = req.SessionAs<CustomSession>();
if (!session.FromToken)
{
throw new AuthenticationException("Please authenticate using bearer token or with flag 'UseTokenCookie' set to true.");
}
... do some work ...
session.X = tup.Item2;
session.Y = tup.Item1;
req.SaveSession(session);
}
}
在我的服務:
var session = this.SessionAs<CustomSession>();
var myX = session.X;
var myY = session.Y;
... do some work ...
var someObj = new MyOtherClass();
someObj.DoSomeWork();
在相同的請求之後,我試圖訪問這些相同的屬性和返回不同的會話。
public class MyOtherClass
{
...stuff...
public void DoSomeWork()
{
...
var req = HostContext.AppHost.TryGetCurrentRequest();
var session = req.SessionAs<CustomSession>(); //-> this returns a new session?
var myX = session.X; //-> so this is null
var myY = session.Y; //-> and this is null
}
}
我的問題是爲什麼?這是同樣的要求。我究竟做錯了什麼?
對於背景 - 我用智威湯遜(如4.5.6)和「MyOtherClass」實際上是當故障是不夠顯著失敗交易或觸發電子郵件通知它決定一個單獨的錯誤處理類。