这是我遇到的问题。我正在使用SignalR,并且在同一个项目中有一个WebAPI,我创建了一个如下所示的集线器:
public class TestHub : Hub
{
public static ConnectController cc = new ConnectController();
public override Task OnDisconnected(bool stopCalled)
{
cc.Delete(Context.ConnectionId.ToString());
Clients.All.onRecordHit(_hitCount);
return base.OnDisconnected(stopCalled);
}
....
此Delete函数完美运行,给定参数应为字符串。在Delete函数中,在创建Session时调用了一个ISESSION变量(因为我使用的是NHibernate)并且它表示它接受一个空值... 这是因为我不知何故需要使这个调用异步并具有返回基数。通话结束后会发生什么?如果是这样,最好的方法是什么?
[Route("api/Connect/byConID/{ConID}")]
public void Delete(string ConID)
{
var connectInfo = Get(ConID);
using (ISession session = NHibernateSession.OpenSession("Hubconnects"))
{
using (ITransaction transaction = session.BeginTransaction())
{
session.Delete(connectInfo);
transaction.Commit();
}
}
}