Исключение из HRESULT: 0x80040E01
Я пытаюсь запросить поиск sharepoint с помощью следующего кода
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 Документированный поиск System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail] Исключение из HRESULT: 0x80040E01
Трассировка стека сервера: в System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(ответ на сообщение, ошибка MessageFault, строковое действие, версия MessageVersion, FaultConverter faultConverter) в System.ServiceModel.Channels.ServiceChannel.HandleRepun & Proxy. Операция прокси-сервера. ServiceModel.Channels.ServiceChannel.Call (Действие String, логическое одностороннее действие, операция ProxyOperationRuntime, Object[] ins, Object[] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(операция SystemOxyOunservice).ServiceModel.Channels.ServiceChannelProxy.Invoke(сообщение IMessage)
Исключение, переброшенное в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, тип Microsoft, Int32).Server.Search.Query.ISearchQueryServiceApplication.Execute(свойства QueryProperties) в Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.<> C_ DisplayClass4.b_3 (ISearchServiceApplicationApplicationApplication.Service.Service.Service.Service.Service.Service.Service.Office.Service.Office.Office. DoSpLoadBalancedUriWsOp[Т] (WebServiceBackedOperation1 webServiceCall, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, String operationName)
at Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.DoWebServiceBackedOperation[T](String operationName, Int32 timeoutInMilliseconds, Int32 wcfTimeoutInMilliseconds, WebServiceBackedOperation
1 webServiceCall) в Microsoft.Office.Server.Search.Administration.SearchServiceApplicationProxy.Execute(свойства QueryProperties) в Microsoft.Office.Server.Search.Query.Query.Execute() в Rapportages.RapportageDocumenten.Ru. currentWeb)
Я читаю предложения, я должен уменьшить ограничение строки, но я получаю это исключение даже с ограничением строки всего 20.
1 ответ
Помещение fulltextsqlquery в использование решило проблему. Не спрашивай меня почему.
using (FullTextSqlQuery q = GetFullTextSqlQuery(web))
{
q.QueryText = sqlQuery.ToString();
rt = ((ResultTableCollection)q.Execute())[ResultType.RelevantResults];
Logging.LogMessage(rt.RowCount.ToString());
}