【发布时间】:2012-07-21 18:01:26
【问题描述】:
我正在尝试使用以下代码查询共享点搜索
protected ResultTable Search(String query, SPWeb currentWeb)
{
ResultTable rt = null;
try
{
FullTextSqlQuery q = GetFullTextSqlQuery(currentWeb);
q.QueryText = query;
q.RowLimit = int.MaxValue;
rt = ((ResultTableCollection)q.Execute())[ResultType.RelevantResults];
//q.Dispose();
}
catch (Exception ex)
{
rt = null;
Logging.LogException(ex);
}
return rt;
}
/// <summary>
/// Create base FullTextSqlQuery
/// </summary>
/// <returns>FullTextSqlQuery</returns>
protected static FullTextSqlQuery GetFullTextSqlQuery(SPWeb currentWeb)
{
FullTextSqlQuery q = new FullTextSqlQuery(currentWeb.Site);
q.Culture = new CultureInfo(1033);
q.EnableStemming = false;
q.TrimDuplicates = true;
if (SPSecurity.AuthenticationMode != System.Web.Configuration.AuthenticationMode.Windows)
{
q.AuthenticationType = QueryAuthenticationType.PluggableAuthenticatedQuery;
}
else
{
q.AuthenticationType = QueryAuthenticationType.NtAuthenticatedQuery;
}
q.RowLimit = 200;
q.StartRow = 0;
q.IgnoreAllNoiseQuery = false;
q.ResultTypes = ResultType.RelevantResults;
return q;
}
无论我做什么,我都会得到这个异常:HRESULT 异常:0x80040E01
23-07-2012 14:53:45 Documenten 搜索 System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail] 来自 HRESULT 的异常:0x80040E01
服务器堆栈跟踪: 在 System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息回复,MessageFault 故障,字符串操作,MessageVersion 版本,FaultConverter faultConverter) 在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,ProxyOperationRuntime 操作,Object[] 输入,Object[] 输出,TimeSpan 超时) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage 方法调用,ProxyOperationRuntime 操作) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息)
在 [0] 处重新抛出异常:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型)
在 Microsoft.Office.Server.Search.Query.ISearchQueryServiceApplication.Execute(QueryProperties 属性)
在 Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.c_DisplayClass4.b_3(ISearchServiceApplication serviceApplication)
在 Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.DoSpLoadBalancedUriWsOp[T](WebServiceBackedOperation1 webServiceCall, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, String operationName)
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.DoWebServiceBackedOperation[T](String operationName, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, WebServiceBackedOperation1 webServiceCall)
在 Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.Execute(QueryProperties 属性)
在 Microsoft.Office.Server.Search.Query.Query.Execute()
在 Rapportages.RapportageDocumenten.RapportageDocumenten.Search(字符串查询,SPWeb currentWeb)
我阅读了我应该减少行限制的建议,但即使行限制低至 20,我也会遇到此异常。
【问题讨论】:
-
据此,去掉
RowLimit的设置。 stackoverflow.com/questions/4073206/… -
不幸的是,这并没有改变任何东西。 HRESULT 仍然异常:0x80040E01
标签: c# sql sharepoint sharepoint-2010 sharepoint-search