ASP.Net MVC3
在我的基本控制器中,我使用Initialize
/ Dispose
方法来创建/部署我的ADO.NET连接。
WCF
我可以在WCF中使用类似的东西吗?我正在使用自己的ServiceHostFactory
,如果可以使用它或自定义ServiceHost
,那就太好了。
答案 0 :(得分:0)
我找到了解决方案。如果有更好的,请发帖。
a)在课堂上实施IDispatchMessageInspector
:
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext)
{
// creates a new database connection
return SessionFactory.Create();
}
public void BeforeSendReply(ref Message reply, object correlationState)
{
// closes the connection
var session = (Session) correlationState;
if (session != null)
session.Dispose();
}
b)使用web.config或以ServiceHost
:
foreach (ChannelDispatcher chDisp in ChannelDispatchers)
{
foreach (EndpointDispatcher epDisp in chDisp.Endpoints)
{
epDisp.DispatchRuntime.MessageInspectors.Add(myMessageInspector);
}
}