ASP.net ページから WCF サービスを使用するための適切なパターンをアドバイスできる人はいますか? Client(:ServiceModel.ClientBase) の有効期間が適切に制御されていない場合、PipeException がスローされるようです。現在、これは Page クラスのフィールドとして存在しますが、クリーンアップ (.Close メソッド) されることなく、ページ要求ごとに再インスタンス化されています。
この質問は「ASP.net ページで限られたリソースを管理する」と言い換えることができ、おそらく ASP.net ページのライフサイクルに関連していると思われます。私は ASP.net を初めて使用するので、これについての私の理解は少し薄いです。
ティア。
編集:いくつかのコード(それほど多くはありません!)
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)
{
2回目の編集:次のほうがよいでしょうか?
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();
//.....