C# 客户端需要数据时意外关闭WCF连接
我有一个使用WCF的简单服务器/客户端设置。我的问题是,任何期望返回值的方法都会由于意外关闭的连接服务器而产生异常 所有数据类都位于C# 客户端需要数据时意外关闭WCF连接,c#,wcf,connection,C#,Wcf,Connection,我有一个使用WCF的简单服务器/客户端设置。我的问题是,任何期望返回值的方法都会由于意外关闭的连接服务器而产生异常 所有数据类都位于MSO.ErrorSystem.Shared.Datatypes 调用该方法的代码: using (var client = Util.GetSearchServiceClient()) { ViewBag.Results = client.SearchReports(searchTerm, page, 50); } Util.GetSearchServi
MSO.ErrorSystem.Shared.Datatypes
调用该方法的代码:
using (var client = Util.GetSearchServiceClient())
{
ViewBag.Results = client.SearchReports(searchTerm, page, 50);
}
Util.GetSearchServiceClient()
:
在服务器端调用的方法:
public IEnumerable<Shared.Datatypes.Report> SearchReports(string pSearchterm, int pPageNum, int pPageSize)
{
using (var session = DatabaseManager.Instance.DocumentStore.OpenSession())
{
return session.Query<Report>().Where(r => Regex.IsMatch(r.Title, pSearchterm) || Regex.IsMatch(r.Text, pSearchterm))
.OrderBy(r => r.Open).OrderBy(r => r.LastEdited).Skip(pPageNum * pPageSize).Take(pPageSize);
}
}
public IEnumerable SearchReports(字符串pSearchterm、int-ppageneum、int-pPageSize)
{
使用(var session=DatabaseManager.Instance.DocumentStore.OpenSession())
{
return session.Query().Where(r=>Regex.IsMatch(r.Title,pSearchterm)| | Regex.IsMatch(r.Text,pSearchterm))
.OrderBy(r=>r.Open).OrderBy(r=>r.lastdedited).Skip(pPageNum*pPageSize).Take(pPageSize);
}
}
编辑:您应该显式打开连接 尝试:
谢谢你的提示!但它不起作用,但抛出了相同的异常
public IEnumerable<Shared.Datatypes.Report> SearchReports(string pSearchterm, int pPageNum, int pPageSize)
{
using (var session = DatabaseManager.Instance.DocumentStore.OpenSession())
{
return session.Query<Report>().Where(r => Regex.IsMatch(r.Title, pSearchterm) || Regex.IsMatch(r.Text, pSearchterm))
.OrderBy(r => r.Open).OrderBy(r => r.LastEdited).Skip(pPageNum * pPageSize).Take(pPageSize);
}
}
using (var client = new SearchServiceClient())
{
client.ClientCredentials.Windows.AllowedImpersonationLevel = System.Security.Principal.TokenImpersonationLevel.Impersonation;
client.Open();
ViewBag.Results = client.SearchReports(searchTerm, page, 50);
client.Close();
}