Install for version 3

Oct 16, 2009 at 11:02 AM

I'm having trouble installing version 3.

I downloaded the one click install and ran it but it didn't seem to work. So I tried to follow the setup document. I got as far as running the Install Instrumentation. This started running, produced loads of text in the command box but does not appear to have completed. It seems to have stopped on "Creating performance counter category Enterprise Library Logging Counters.". Task manager shows it still running and a process called InstallUtil.exe isreading and writing to the disk but doesn't appear to be doing much else.

I thought I'd try to move on to the next step. Editing the CreateCachingDb.cmd. But there is no file of that name on the server.

I'm using a virtual server running Windows Server 2003 R2.

Can anyone help or explain?

 

JS

Coordinator
Oct 16, 2009 at 2:20 PM

John,

There is no need to run anything beyond one-click-deployment. What exactly errors you got during the setup?

Leonid

Oct 16, 2009 at 2:57 PM
Am I supposed to do all the steps in the setup guide or should the one click setup do everything including setting up the Enterprise Library?

In the Web part gallery, clicking on the SearchBreadCrumbs.webpart or the SearchFacets.wepart causes an error page to appear the gives the error as Unknown Error.


There are also 3 error entries in the Application event log:

Event Type: Error
Event Source: Enterprise Library Logging
Event Category: None
Event ID: 0
Date: 16/10/2009
Time: 15:35:46
User: N/A
Computer: MOSSDEV3
Description:
An error occurred in application /LM/W3SVC/1515439599/Root-2-129001772141520037 in the Enterprise Library Logging Application Block.
Failure while sending log entry to the Trace Listeners.
The exception that occurred was: System.Security.SecurityException: Requested registry access is not allowed.
at System.ThrowHelper.ThrowSecurityException(ExceptionResource resource)
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData)
at System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Byte[] data, Object[] values)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Object[] values)
at System.Diagnostics.EventLogTraceListener.TraceData(TraceEventCache eventCache, String source, TraceEventType severity, Int32 id, Object data)
at Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedTraceListenerWrapperBase.TraceData(TraceEventCache eventCache, String source, TraceEventType severity, Int32 id, Object data)
at Microsoft.Practices.EnterpriseLibrary.Logging.LogSource.TraceData(TraceEventType eventType, Int32 id, LogEntry logEntry, TraceListenerFilter traceListenerFilter)
at Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter.ReportExceptionDuringTracing(Exception exception, LogEntry log, LogSource traceSource)
The Zone of the assembly that failed was:
MyComputer


For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Event Type: Error
Event Source: Enterprise Library Logging
Event Category: None
Event ID: 0
Date: 16/10/2009
Time: 15:35:46
User: N/A
Computer: MOSSDEV3
Description:
An error occurred in application /LM/W3SVC/1515439599/Root-2-129001772141520037 in the Enterprise Library Logging Application Block.
Failure while reporting missing log categories for log entry.
The exception that occurred was: System.Security.SecurityException: Requested registry access is not allowed.
at System.ThrowHelper.ThrowSecurityException(ExceptionResource resource)
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData)
at System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Byte[] data, Object[] values)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Object[] values)
at System.Diagnostics.EventLogTraceListener.TraceData(TraceEventCache eventCache, String source, TraceEventType severity, Int32 id, Object data)
at Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedTraceListenerWrapperBase.TraceData(TraceEventCache eventCache, String source, TraceEventType severity, Int32 id, Object data)
at Microsoft.Practices.EnterpriseLibrary.Logging.LogSource.TraceData(TraceEventType eventType, Int32 id, LogEntry logEntry, TraceListenerFilter traceListenerFilter)
at Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter.ReportMissingCategories(ICollection`1 missingCategories, LogEntry logEntry)
The Zone of the assembly that failed was:
MyComputer


For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Event Type: Error
Event Source: Enterprise Library Logging
Event Category: None
Event ID: 0
Date: 16/10/2009
Time: 15:35:46
User: N/A
Computer: MOSSDEV3
Description:
An error occurred in application /LM/W3SVC/1515439599/Root-2-129001772141520037 in the Enterprise Library Logging Application Block.
Failure while sending log entry to the TraceListeners.
The exception that occured was: System.Security.SecurityException: Requested registry access is not allowed.
at System.ThrowHelper.ThrowSecurityException(ExceptionResource resource)
at Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable)
at System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData)
at System.Diagnostics.EventLog.VerifyAndCreateSource(String sourceName, String currentMachineName)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Byte[] data, Object[] values)
at System.Diagnostics.EventLog.WriteEvent(EventInstance instance, Object[] values)
at System.Diagnostics.EventLogTraceListener.TraceData(TraceEventCache eventCache, String source, TraceEventType severity, Int32 id, Object data)
at Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedTraceListenerWrapperBase.TraceData(TraceEventCache eventCache, String source, TraceEventType severity, Int32 id, Object data)
at Microsoft.Practices.EnterpriseLibrary.Logging.LogSource.TraceData(TraceEventType eventType, Int32 id, LogEntry logEntry, TraceListenerFilter traceListenerFilter)
at Microsoft.Practices.EnterpriseLibrary.Logging.LogWriter.ReportExceptionDuringTracing(Exception exception, LogEntry log, LogSource traceSource)
The Zone of the assembly that failed was:
MyComputer


For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Any ideas?

John Seaden
Strategic Development Officer
Kent Fire & Rescue Service
Service Headquarters
The Godlands
Tovil, Kent
UK
ME15 6XB

Tel: 01622 698436
Email: John.Seaden@kent.fire-uk.org




____________________________________________
This e-mail has been scanned for malicious content on behalf of Kent Fire & Rescue Service by Microsoft Exchange Hosted Services.

For more information about Kent Fire & Rescue Service visit: http://www.kent.fire-uk.org

Kent Fire & Rescue Service logs, records and reserves the right to analyse and act upon activity and communication on its Information Systems (including external systems such as external e-mail, emergency telephony etc), to meet our statutory responsibilities, protect systems from abuse, secure the effective operation of systems and any other lawful purpose.
Coordinator
Oct 16, 2009 at 11:47 PM

John,

One-click-deployment should do all the config settings. Seems it doesn't happen in your case likely due to lack of permissions. You can send the logs, web.config and snapshots to xsearch@microsoft.com and we'll see if you can point the issue. In any case, try deactivate/activate the feature and check event log.

Leonid

Oct 20, 2009 at 8:22 AM

I had the same issue with the Unknown error.  Did you find a resolution for this and if so, what was it?

Thanks

Steve

Oct 20, 2009 at 9:50 AM

Haven't found a solution yet.

I had to roll back my virtual server because it crashed completely so I started the install again.

I installed the Enterprise Library 4.1 and then ran the one click installation of the faceted search. Didn't see any errors on the screen and none in the event log.

This time, only the searchbreadcrumbs.webpart causes the unknown error page to appear. I've deactivated/reactivated and even powered off and rebooted but still have the same problem.

I'll send the requested bits off to the above email address and see whether we can sort things out.

 

John

Coordinator
Oct 20, 2009 at 12:29 PM

The errors are from Ent Lib. Seems there is lack of permissions when the 1st message sent to the Event log and Ent Lib attempts to create a new source "Faceted Search Logging", defined in web.config. I haven't checked their forum yet, but I believe there is a documented work around. Please check and post your findings.

Leonid

Oct 20, 2009 at 12:41 PM

Whar forum are you refering to?

 

Thanks

Oct 20, 2009 at 2:52 PM

I don't think the problem is the event logging as that error occured quite early this morning and despite rebooting etc hasn't been seen since. I don't understand why it is only the searchbreadcrumbs.webpart thats failing and not any of the others?

Any other ideas?

 

JS

Oct 22, 2009 at 10:29 AM
Edited Oct 22, 2009 at 10:34 AM

I'm having similar problems trying to get v3.0 working. I initially tried to upgrade a v2.5 implementation and had a few issues with Enterprise Library configuration entries in web.config file. Eventually I appeared to get it working, but tried to view the SearchBreadCrumbs.webpart in Web Part Gallery and received an error:

Object reference not set to an instance of an object.   at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchQueryWebPart.SaveQueryState(String value)
   at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchBreadCrumbs.OnPreRender(EventArgs e)......................

Eventually decided to try this on a clean installation, so I built new development machine (Windows Server 2008 R2 / MOSS SP2 with 2009 August CU). Created new empty Collaboration site collection. Installed Enterprise Library 4.1. Then I ran the one click install. Couple of comments:

  • The setup guide should be updated:
  • As per first comment in the post, document states you need to create the caching db. There no script to do this, and it's still not clear to me whether it's needed. I eventually used the script from the Enterprise Library 3.1 package, but can't figure out whether it's needed. Neither the Enterprise Library install or the one click install appeared to create the database.
  • If you follow the updates required to the web.config file as specified in the setup guide, it still refers to a caching database in the connection string, but no server (Data Source) is specified:
    • <add name="Connection String" connectionString="Data Source=;Initial Catalog=Caching;Integrated Security=True" providerName="System.Data.SqlClient" />
  • The next connection string line you are supposed to update the server name, however I assume you should also update the SharedServices database name (if not using the default name):
    • <add name="SharedServices" connectionString="Data Source=<YOUR SQL SERVER NAME> ;Initial Catalog=SharedServices1_DB;Integrated Security=True" providerName="System.Data.SqlClient" />

In any case after doing the above steps above, I verified the Enterprise Library implementation using the Enterprise Library Configuration tool.

I then attempted to test the install using the test web part preview in the Web Part Gallery:

  • SearchBreadCrumbs.webpart - preview not working (the same error as noted above)
  • SearchFacets.webpart - working, but no sample data displayed as reflected in setup document
  • SearchHint.webpart - working

The only error in the event log is one reported elsewhere already (which supposedly can be ignored):

Timestamp: 10/22/2009 9:52:35 AM
Message: There is no explicit mapping for the categories 'Faceted Search Logging'. The log entry was:
Timestamp: 10/22/2009 9:52:35 AM
Message: Default scope All Sites in Search Facets doesn't exist in SSP scopes
Category: Faceted Search Logging
...... 

I haven't gotten so far as to test everything on a search results page, so perhaps it's actually all working. Nevertheless I followed the installation guide step by step, and I haven't got the results I was expecting thus far...

Brian

Coordinator
Oct 22, 2009 at 1:36 PM

The next build will have fixes for "There is no explicit mapping for the categories 'Faceted Search Logging'" in Event log and preview for SearchBreadCrumbs.webpart.

Leonid

Oct 22, 2009 at 1:51 PM

Thanks for the info. Any idea when that release might be available?

I have now created the basic search page that is installed as part of the faceted search and it is showing a list of results in the middle of the page and the results broken into categories etc down the left side. I suppose that I need to do a bit moew configuration to get the rest of the webparts displaying something. I'll have to read the documentation now we've got that far.

 

John S

Coordinator
Oct 24, 2009 at 6:16 PM

John

The next build should be out within a week.

Leonid

Oct 30, 2009 at 6:53 PM

Hi Leonidly,

I have installed Facted Search V3.0.092909.0 and am getting the error below when previewing the FacetedSearch webpart in the gallery.

Object reference not set to an instance of an object.   at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchFacets.OnPreRender(EventArgs e)
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.WebControls.WebParts.WebPart.PreRenderRecursiveInternal()
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.Control.PreRenderRecursiveInternal()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

-------

and am getting this error in the Event log (Event ID 100) ...

 

Message : No scope named "0" could be found.

Source : Microsoft.Office.Server.Search

Help link :

Data : System.Collections.ListDictionaryInternal

TargetSite : Microsoft.Office.Server.Search.Administration.Scope get_Item(Int32)

Stack Trace : at Microsoft.Office.Server.Search.Administration.ScopeCollection.get_Item(Int32 id)

at Microsoft.SharePoint.Portal.ExtendedSearch.Common.Utility.<>c__DisplayClass2.<SetScopes>b__0()

 -----

There is no scope ID =0 and the ALL SITES scope has the id=19 in table dbo.MSSScopes

Is this a bug or can we workaround this?

Thanx

Mrashruf

Coordinator
Nov 1, 2009 at 3:37 PM

ID=19 for All Sites - That's unexpected. What is your main language pack?

Leonid

Nov 1, 2009 at 4:14 PM

English.

We re-created all scopes to ensure they were not casuing the error.

Coordinator
Nov 1, 2009 at 4:59 PM

When Faceted Search runs 1st time, it writes an entry into the Event Log with all the scopes found in the system. What does it say?

Leonid

Nov 1, 2009 at 6:53 PM

Type : System.Collections.Generic.KeyNotFoundException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Message : No scope named "4" could be found.

Source : Microsoft.Office.Server.Search

 

------------

Timestamp: 30/10/2009 11:40:10

Message: There is no explicit mapping for the categories 'Faceted Search Logging'. The log entry was:

Timestamp: 30/10/2009 11:40:10

Message: Discovered and cached 7 search scopes.

Category: Faceted Search Logging

Priority: -1

EventId: 1

Severity: Information

Coordinator
Nov 1, 2009 at 7:36 PM
mrashruf wrote:

Type : System.Collections.Generic.KeyNotFoundException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Message : No scope named "4" could be found.

Source : Microsoft.Office.Server.Search

 

------------

Timestamp: 30/10/2009 11:40:10

Message: There is no explicit mapping for the categories 'Faceted Search Logging'. The log entry was:

Timestamp: 30/10/2009 11:40:10

Message: Discovered and cached 7 search scopes.

Category: Faceted Search Logging

Priority: -1

EventId: 1

Severity: Information

 Before that with ref to cached Scopes. The error above can be disregarded.

Nov 1, 2009 at 7:57 PM

This is the first log...

 

Timestamp: 30/10/2009 11:13:35

Message: Faceted Search: Metrics executing search query.

Category: Information

Priority: 400

EventId: 0

Severity: Information

Title:KeywordQuery Search

Machine: RHPSPS1

Application Domain: /LM/W3SVC/1861688240/Root-2-129013747655202131

Process Id: 4060

Process Name: c:\windows\system32\inetsrv\w3wp.exe

Win32 Thread Id: 3912

Thread Name:

Extended Properties: Running2ndTime - False

ResultsPerPage - 300

DatabaseTime - 94

ElapsedTime - 1156

TotalResults - 0

TotalRows - 0

QueryXML - <SearchQuery><Keywords>MSDN</Keywords><Start>0</Start><IsAdvancedSearch>False</IsAdvancedSearch><QueryMethod>KeywordQuery</QueryMethod><FormData><IsAnd>False</IsAnd></FormData></SearchQuery>

Nov 2, 2009 at 12:28 PM

We turned on the stack trace and turned off custom errors to see the exception. The stack trace read:

[NullReferenceException: Object reference not set to an instance of an object.]
   Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchFacets.OnPreRender(EventArgs e) +480
   System.Web.UI.Control.PreRenderRecursiveInternal() +80
   System.Web.UI.WebControls.WebParts.WebPart.PreRenderRecursiveInternal() +42
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Control.PreRenderRecursiveInternal() +171
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

We decided to open up the Microsoft.SharePoint.Portal.ExtendedSearch assembly in Reflector, and tracking through what was happening. We found that in OnPreRender there is a for-each loop processing each scope returned by the Utility.CachedScopes property. Looking at the Utility.CachedScopes Get function, we noticed that if there weren't cached scopes, the SetScopes() function was being called. We then looked at that function to see what it was doing, and found something that puzzled us a little.

In the SetScopes function there is a delegate with a For loop in it that reads:

Scope[] scopeArray = new Scope[scopes.get_AllScopes().get_Count()];
for (int j = 0; i < scopes.get_AllScopes().get_Count(); i++)
{
    Scope scope = scopes.get_AllScopes().get_Item(i);
    scopeArray[i] = new Scope(scope.get_ID(), scope.get_Name());
}

We're a little puzzled, as we don't see the variable 'i' being declared anywhere, and 'j' isn't used or changed within the loop! Is that correct?

We've also got a bit of a problem as we don't have a scope with an ID of 0 - the original scopes were all deleted, and now we've got an 'All Sites' scope with an ID of 19 - but only 4 scopes.  Therefore, if 'i' starts at zero, the code above will call ScopeCollection.get_Item() with an ID of 0. ScopeCollection.get_Item will try to load the scope information from the in memory cache - which it won't be able to - and then from the database table via the Scope constructor. (The constructor calls the this.Database.GetScopeInfo() function).

However, the value being passed is still for a scope ID 0, which doesn't exist. This causes an error which gets thrown as a DeletedConcurrencyException, is caught in ScopeCollection.get_Item and a KeyNotFoundException thrown instead. That's what we're seeing in our event logs.

Even if the KeyNotFoundExcepction wasn't being thrown, I don't see how 'i' would reach a value of 19 - the For loop would terminate at 4, as we've only got 4 scopes!

I would guess that this might be our problem. Have I missed something?

It would also explain why facetted search works fine on our test box, where we have not deleted and recreated the scopes, and they are a continous set starting at ID = 0.

Nov 2, 2009 at 4:32 PM
Edited Nov 2, 2009 at 4:35 PM

We have installed the Version 3.0.102409.0 released yesterday 1 Nov 2009 am we are still having the same problem the as outlined in the above thread.

The main issue appears to be that 'All sites' does not have an id of 1 as expected but 19 (as the original scope called 'All Sites' was deleted and has since been recreated) The total number of scopes returned by GetScopesCount() through dbo.proc_MSS_GetScopesCount which counts the records in dbo.MSSScopes is 4 so the for loop never gets to id 19 and this will be same regardless

Is there any way we can work around this?

Regards

Coordinator
Nov 2, 2009 at 5:50 PM

I haven't tested this scenario, nor experienced it. Seems you need to build your custom solution and have Stoic Tech do it for you. May be someone on the forum has other ideas.

Leonid

Nov 3, 2009 at 6:18 AM

I'm experiencing the same problems as the other users. I'm getting a null pointer exception from the Breadcrumbs webpart and the Faceted Search Webpart (FCWP) doesn't work. Every time I add the FCWP to the page, I'm redirected to the general error page.

Trying to preview the FCWP result in an unknown error giving the following entry in the event log:

Timestamp: 11/3/2009 7:14:01 AM
Message: HandlingInstanceID: be3d7aa8-5fbc-4835-9ff6-5bbd59ecc3f9
An exception of type 'System.Collections.Generic.KeyNotFoundException' occurred and was caught.
-----------------------------------------------------------------------------------------------
11/03/2009 08:14:01
Type : System.Collections.Generic.KeyNotFoundException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : No scope named "6" could be found.
Source : Microsoft.Office.Server.Search
Help link :
Data : System.Collections.ListDictionaryInternal
TargetSite : Microsoft.Office.Server.Search.Administration.Scope get_Item(Int32)
Stack Trace : at Microsoft.Office.Server.Search.Administration.ScopeCollection.get_Item(Int32 id)
at Microsoft.SharePoint.Portal.ExtendedSearch.Common.Utility.<>c__DisplayClass3.<SetScopes>b__0()
at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state)
at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2()
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)
at Microsoft.SharePoint.Portal.ExtendedSearch.Common.Utility.SetScopes()

We have created new scopes and are not using the "All Sites" and "People" scopes.

-erling-

Nov 3, 2009 at 6:49 AM
Edited Nov 3, 2009 at 11:23 AM

Update:

1. Exported the webpart
2. Removed "All Sites" as default scope (<property name="DefaultScope" type="string"></property>)
3. Uploaded the new .webpart file and VOILA, preview works fine for Faceted Search Web Part. It also works fine "in use".

The problem now is the Breadcrumbs Web Part (BWP). It only shows an exclamation mark with the img title="Object reference not set to ....."

The event log has two entries:

 

The second one:

Timestamp: 11/3/2009 7:38:27 AM
Message: HandlingInstanceID: 09f74389-0648-4c13-8a18-b4dd56dd36fb
An exception of type 'System.NullReferenceException' occurred and was caught.
-----------------------------------------------------------------------------
11/03/2009 08:38:27
Type : System.NullReferenceException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Message : Object reference not set to an instance of an object.
Source : Microsoft.SharePoint.Portal.ExtendedSearch
Help link :
Data : System.Collections.ListDictionaryInternal
TargetSite : System.Web.UI.Control ScopeControl(System.String, System.String, System.String, Int16)
Stack Trace : at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.TemplateUtility.ScopeControl(String guid, String value, String typeId, Int16 operatorId)
at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.TemplateUtility.FacetControl(String guid, String facetName, String value, String typeId, Int16 operatorId)
at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.CrumbFacetLightTemplate.panel_DataBinding(Object sender, EventArgs e)
at System.Web.UI.Control.OnDataBinding(EventArgs e)
at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)
at System.Web.UI.Control.DataBindChildren()
at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)
at System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem)
at System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource)
at System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchBreadCrumbs.CrumbTable_ItemDataBound(Object sender, DataListItemEventArgs e)
at System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem)
at System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource)
at System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchBreadCrumbs.BreadCrumbsTableContainer()
at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchBreadCrumbs.CreateChildControls()
Additional Info:
MachineName : XXXXXXXXXX
TimeStamp : 11/3/2009 7:38:27 AM
FullName : Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
AppDomainName : /LM/W3SVC/456401541/ROOT-5-129017050799150345
ThreadIdentity : XXXXXX
WindowsIdentity : XXXXXX
Category: Information
Priority: 0
EventId: 100
Severity: Error
Title:Faceted Search Exception Handling
Machine: XXXXXX
Application Domain: /LM/W3SVC/456401541/ROOT-5-129017050799150345
Process Id: 6864
Process Name: c:\windows\system32\inetsrv\w3wp.exe
Win32 Thread Id: 4592
Thread Name:
Extended Properties:

 

EDIT:
I have the following scopes defined:
People: ID=0
All Sites: ID=1
TIP: ID=4
TENAS Management System: ID=5
G-drive: ID=7
Management: ID=8

 

Digged into the DLL and found the same issue as "mrashruf":

public void <SetScopes>b__0()
{
    Scopes scopes = new Scopes(SearchContext.get_Current());
    if ((scopes != null) && (scopes.get_AllScopes() != null))
    {
        Scope[] source = new Scope[scopes.get_AllScopes().get_Count()];
        StringBuilder builder = new StringBuilder();
        for (int i = 0; i < scopes.get_AllScopes().get_Count(); i++)
        {
            Scope scope = scopes.get_AllScopes().get_Item(i);
            if (scope.get_DisplayInAdminUI())
            {
                source[i] = new Scope(scope.get_ID(), scope.get_Name());
                builder.AppendFormat("{0},", scope.get_Name());
            }
            else
            {
                source[i] = new Scope();
            }
        }
        IEnumerable<Scope> enumerable = source.Where<Scope>(delegate (Scope s) {
            return !s.IsEmpty();
        });
        this.app.Add("CachedScopes", enumerable.ToArray<Scope>());
        Utility.LogInformation(string.Format("Discovered and cached {0} search scopes: {1}", scopes.get_AllScopes().get_Count(), builder.ToString().TrimEnd(new char[] { ',' })));
    }
    else
    {
        Utility.LogInformation(string.Format("No search scopes discovered.", new object[0]));
    }
}
Shouldn't this be a foreach loop instead?

Anyway, ideas anyone?

-erling-

 

Nov 3, 2009 at 12:36 PM

What’s described by burnbay above looks like exactly what we were observing.

A for each loop would work or if max scope id could be retrieved instead of a count although im not sure this is exposed directly through Microsoft.Office.Server.Search.Administration.Scope class.

Or the Scope ID could be retrived based on the name defined under <property name="DefaultScope" type="string"></property> using Scope.ID Property

 Also If the default scope within the web part is changed from 'All Sites' under <property name="DefaultScope" type="string"></property> then using a count in the way above would likely not reach the scope id if any scopes had subsequently been deleted. So the issue looks like it wouldn’t just affect anybody recreating the 'All Sites' but if a different scope was used that assigned an ID greater than the count of the scopes.

If the source was available can it be made so leonidly the only version available is an early version 3.0

Regards

 

Coordinator
Nov 3, 2009 at 12:58 PM
Edited Nov 3, 2009 at 1:37 PM

Thanks for the pointer. Will look into the issue. Please send me your email address to xsearch@microsoft.com if you're willing to test the fix and report back your findings.

Leonid

Coordinator
Nov 3, 2009 at 2:27 PM
leonidly wrote:

The errors are from Ent Lib. Seems there is lack of permissions when the 1st message sent to the Event log and Ent Lib attempts to create a new source "Faceted Search Logging", defined in web.config. I haven't checked their forum yet, but I believe there is a documented work around. Please check and post your findings.

Leonid

 Here is the reference http://support.microsoft.com/kb/842795

Nov 10, 2009 at 9:28 AM

Hi

Have found a Article from Microsoft which through a SQL script recreates the out of the box scopes including 'All Sites' and recreates them with there original scope id's which should work around the problem outlined above. Will confirm after we have tested.

http://support.microsoft.com/kb/968094/en-us

SET IDENTITY_INSERT dbo.MSSScopes ON

IF EXISTS (SELECT * FROM sysobjects WHERE name = 'proc_MSS_AddScopeWithID' AND type = 'P')
    DROP PROCEDURE dbo.proc_MSS_AddScopeWithID
GO

CREATE PROCEDURE dbo.proc_MSS_AddScopeWithID(
    @Name nvarchar( 60 ),
    @Description nvarchar( 300 ),
    @ConsumerName nvarchar( 60 ),   
    @DisplayInAdminUI bit,
    @AlternateResultsPageUrl nvarchar( 2048 ) = NULL,
    @CompilationType smallint,        
    @ModifierName nvarchar( 2048 ),
    @ScopeID int )
AS
    DECLARE @LastError int
    
    DECLARE
        @ConsumerID int
    SELECT
        @ConsumerID = ConsumerID
    FROM
        dbo.MSSRegisteredConsumers
    WHERE
        ConsumerName = @ConsumerName
        
    IF @@ROWCOUNT = 0
        RETURN 1
    SELECT @LastError = @@ERROR
    IF @LastError <> 0
        RETURN @LastError
        
    BEGIN TRAN

    INSERT INTO
        dbo.MSSScopes (
            ScopeID,
            Name,
            Description,
            ConsumerID,
            DisplayInAdminUI,
            AlternateResultsPageUrl,
            CompilationType,
            CompilationState,
            LastCompilationTime,
            LastModifiedTime,
            LastModifiedBy,
            LastChangeID
        )
    VALUES (
        @ScopeID,
        @Name,
        @Description,
        @ConsumerID,
        @DisplayInAdminUI,
        @AlternateResultsPageUrl,
        @CompilationType,
        0,
        NULL,
        GETUTCDATE(),
        @ModifierName,
        0
    )

    SELECT @LastError = @@ERROR
    IF @LastError <> 0
    BEGIN
        ROLLBACK TRANSACTION
        RETURN @LastError
    END
    
    EXEC
        @LastError = dbo.proc_MSS_ScopeHasChanged @ScopeID, @ModifierName

    IF @LastError <> 0
    BEGIN 
        ROLLBACK TRAN
        RETURN @LastError
    END
    
    COMMIT TRAN
    RETURN 0
GO

DELETE FROM dbo.MSSScopes WHERE ScopeId = 0
BEGIN
    EXEC dbo.proc_MSS_AddScopeWithID N'People', N'Search for people.', N'shared', 1, N'peopleresults.aspx', 1, N'system', 0
    DECLARE @id int
    EXEC dbo.proc_MSS_AddScopeRule 0, 0, 2, 0, 261, N'urn:content-class:SPSPeople', N'system', @id OUTPUT
END
GO

DELETE FROM dbo.MSSScopes WHERE ScopeId = 1
BEGIN
    EXEC dbo.proc_MSS_AddScopeWithID N'All Sites', N'Search for everything available for searching.', N'shared', 1, NULL, 1, N'system', 1
    DECLARE @id int
    EXEC dbo.proc_MSS_AddScopeRule 1, 0, 0, 0, 0, N'', N'system', @id OUTPUT
    EXEC dbo.proc_MSS_AddScopeRule 1, 2, 2, 0, 261, N'urn:content-class:SPSPeople', N'system', @id OUTPUT
END

DELETE FROM dbo.MSSScopes WHERE ScopeId = 2
BEGIN
    EXEC dbo.proc_MSS_AddScopeWithID N'Global Query Exclusion', N'Everything that should be omitted from all searches by default.', N'shared', 0, NULL, 1, N'system', 2
END
GO

DELETE FROM dbo.MSSScopes WHERE ScopeId = 3
BEGIN
    EXEC dbo.proc_MSS_AddScopeWithID N'Rank Demoted Sites', N'Sites whose ranks will be demoted in click-distance calculation.', N'shared', 0, NULL, 1, N'system', 3
END
GO

DROP PROC dbo.proc_MSS_AddScopeWithID

SET IDENTITY_INSERT dbo.MSSScopes OFF

Only works for english installs though

The above want fix faceted search if you specify a scope through the xml <property name="DefaultScope" type="string"></property> which has an ID greater than the count of scopes.

 

Coordinator
Nov 10, 2009 at 5:56 PM
Edited Nov 10, 2009 at 5:58 PM

Excellent research! In fact, we are testing the build that addtresses exactly this porblem. Feel free to send your email address to xsearch@microsoft.com if you are willing to try the build and report back your findings.

Leonid

Nov 25, 2009 at 11:49 AM

Hi again!

Just installed version 3.0.111709.0, but I'm still having the same problem. Narrowed it down to scopes:

Doing a search like: http://<servername>/sites/SearchCenter/Pages/results.aspx?k=tms&s=TIP result in a null reference error in the Breadcrumb webpart:

Object reference not set to an instance of an object when hovering over the exclaimation mark.

The event log has the following entries:

Timestamp: 11/25/2009 12:42:54 PM

Message: HandlingInstanceID: 9526d9c5-6a2b-4754-af98-26478a117beb

An exception of type 'System.Collections.Generic.KeyNotFoundException' occurred and was caught.

-----------------------------------------------------------------------------------------------

11/25/2009 13:42:54

Type : System.Collections.Generic.KeyNotFoundException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Message : No scope named "6" could be found.

Source : Microsoft.Office.Server.Search

Help link :

Data : System.Collections.ListDictionaryInternal

TargetSite : Microsoft.Office.Server.Search.Administration.Scope get_Item(Int32)

Stack Trace : at Microsoft.Office.Server.Search.Administration.ScopeCollection.get_Item(Int32 id)

at Microsoft.SharePoint.Portal.ExtendedSearch.Common.Utility.<>c__DisplayClass3.<SetScopes>b__0()

at Microsoft.SharePoint.SPSecurity.CodeToRunElevatedWrapper(Object state)

at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2()

at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)

at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)

at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)

at Microsoft.SharePoint.Portal.ExtendedSearch.Common.Utility.SetScopes()

Additional Info:

MachineName : XXXXXX

TimeStamp : 11/25/2009 12:42:54 PM

FullName : Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

AppDomainName : /LM/W3SVC/456401541/ROOT-1-129036239381317999

ThreadIdentity : XXXXX

WindowsIdentity : XXXXX

Category: Information

Priority: 0

EventId: 100

Severity: Error

Title:Faceted Search Exception Handling

Machine: EUROSTASPWEB1

Application Domain: /LM/W3SVC/456401541/ROOT-1-129036239381317999

Process Id: 2684

Process Name: c:\windows\system32\inetsrv\w3wp.exe

Win32 Thread Id: 3492

Thread Name:

Extended Properties:

and:

Timestamp: 11/25/2009 12:42:54 PM

Message: HandlingInstanceID: 95e80eb2-c962-4118-a96a-103a5234fef7

An exception of type 'System.NullReferenceException' occurred and was caught.

-----------------------------------------------------------------------------

11/25/2009 13:42:54

Type : System.NullReferenceException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Message : Object reference not set to an instance of an object.

Source : Microsoft.SharePoint.Portal.ExtendedSearch

Help link :

Data : System.Collections.ListDictionaryInternal

TargetSite : System.Web.UI.Control ScopeControl(System.String, System.String, System.String, Int16)

Stack Trace : at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.TemplateUtility.ScopeControl(String guid, String value, String typeId, Int16 operatorId)

at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.TemplateUtility.FacetControl(String guid, String facetName, String value, String typeId, Int16 operatorId)

at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.CrumbFacetLightTemplate.panel_DataBinding(Object sender, EventArgs e)

at System.Web.UI.Control.OnDataBinding(EventArgs e)

at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)

at System.Web.UI.Control.DataBindChildren()

at System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding)

at System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem)

at System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource)

at System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)

at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchBreadCrumbs.CrumbTable_ItemDataBound(Object sender, DataListItemEventArgs e)

at System.Web.UI.WebControls.DataList.CreateItem(Int32 itemIndex, ListItemType itemType, Boolean dataBind, Object dataItem)

at System.Web.UI.WebControls.DataList.CreateControlHierarchy(Boolean useDataSource)

at System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)

at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchBreadCrumbs.BreadCrumbsTableContainer()

at Microsoft.SharePoint.Portal.ExtendedSearch.WebControls.SearchBreadCrumbs.CreateChildControls()

Additional Info:

MachineName : XXXXXX

TimeStamp : 11/25/2009 12:42:54 PM

FullName : Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

AppDomainName : /LM/W3SVC/456401541/ROOT-1-129036239381317999

ThreadIdentity : XXXXXX

WindowsIdentity : XXXXXX

Category: Information

Priority: 0

EventId: 100

Severity: Error

Title:Faceted Search Exception Handling

Machine: EUROSTASPWEB1

Application Domain: /LM/W3SVC/456401541/ROOT-1-129036239381317999

Process Id: 2684

Process Name: c:\windows\system32\inetsrv\w3wp.exe

Win32 Thread Id: 3492

Thread Name:

Extended Properties:

We have the following scopes defined as shared:

People=0
All Sites=1
TIP=4
TENAS Management System=5
G-drive=7
Management=8

A search without a scope specified: http://<servername>/sites/SearchCenter/Pages/results.aspx?k=tms works fine.

Reeeaaaally need a fix for this.

-Erling-

Coordinator
Nov 26, 2009 at 2:22 AM

The build was tested on the Scope issue and proved resolving it. Your problem should be troubleshooted.

Nov 27, 2009 at 9:22 AM

Hi,

Does the 1 click installation include the Enterprise library or do you need to install that seperately?

 

Thanks

Coordinator
Nov 27, 2009 at 4:23 PM

EntLib run time is deployed as well and GAC-ed

Dec 14, 2009 at 9:42 AM

Hi again.

Turned out that the 3.0 version in GAC didn't get replaced by the update. Found the latest DLL in the web application bin directory. GAC'ed the DLL and the breadcrumb webpart works like a charm!

Thanks for the fix ... life's good and merry christmas ;-)

-e-