任何人都可以建议从 ASP.net 页面使用 WCF 服务的良好模式吗?似乎如果 Client(:ServiceModel.ClientBase) 的生命周期没有得到适当的控制,我们就会抛出 PipeException。它目前作为 Page 类的一个字段存在,但在每个页面请求时都被重新实例化,而不被清理(.Close 方法)。
我怀疑这个问题可以改写为“管理 ASP.net 页面中的有限资源”,并且可能与 ASP.net 页面的生命周期更相关。我是 ASP.net 的新手,所以我对此的理解有点薄。
TIA。
编辑:一些代码(没什么大不了的!)
public partial class Default : Page
{
//The WCF client... obviously, instantiating it here is bad,
//but where to instantiate, and where to close?
private readonly SearchClient client = new SearchClient();
protected void Page_Load(object sender, EventArgs e)
{
第二次编辑:以下会更好吗?
public partial class Default : Page
{
private SearchClient client;
protected void Page_Unload(object sender, EventArgs e)
{
try
{
client.Close();
}
catch
{
//gobbled
}
}
protected void Page_Load(object sender, EventArgs e)
{
client= new SearchClient();
//.....