Hybrid Search Results not displaying

Help!  My Hybrid Search isn't working!  What could it be?!?

  1. So you have successfully run the hybrid scripts here.
  2. You have ensured that the results are flowing to your Cloud Search Service Application via the Cloud SSA crawl logs.
  3. You go to do a search using your Azure AD cloud sync'd account and you get…nothing…what!??!
  4. You look things over and over again…maybe I didn't do this, maybe I didn't do that…no, it all looks good!

The possible cause:

  1. You didn't setup a User Profile Service Application (kinda rare I know)
  2. You view your "sync'd" site collection users profile and notice that the local "email address" does not match your cloud email address…doh!
    1. chris@companyone.com vs chris@companytwo.com
  3. You change the values to match using the edit list item feature of the site users list
  4. You re-run the cloud ssa crawl
  5. Go back to the cloud search center…ta da…results!  Just another reminded that UPNs have to match for the results to process and this value comes from the site collection users list when you have no UPS!

Hope this helps someone!
Chris

Other Helpful posts on a similar topic:

FileNet to SharePoint – PowerStreamECM

It has been a very busy last few months!  I have built two major products both of which I now get to blog about before Ignite!  I have always been interested in building cool stuff and over the years I have done some pretty awesome things.  One of which was to migrate Oracle Portal to SharePoint for General Atomics here in San Diego.  Since then I have done other migrations, but have not had the exposure to some of the more popular ECM products out in the wild.  That has all changed since the beginning of the year.  Since being at ShareSquared I have got to see two more major ECM products in action:

FileNet was one of the more simple ones to figure out.  I can now use our PowerStreamECM product to migrate your old or new FileNet systems to SharePoint 2013/2016/O365 without any type of translation in-between. Just straight from the source to the target!

If you have a FileNet system that you want migrated, let me know!  We have done this so many times now we have the design, management and implementation of all the pieces down to an art form!

If you are interested in moving your old content to SharePoint, contact me at: chris@sharesquared.com

Chris

  

Videos – K2 vs Nintex – Want to know the real difference between the two? Here ya go!

Now that I have access to just about every 3rd party ISV software for SharePoint (K2, Nintex, VisualSP, ConceptSearch, Ephesoft, KnowledgeLake, etc, etc, etc), I have been able to install and configure all of them. And in most cases, I have automated the install of all of them (more on that in a later blog post after our new site goes live).  Due to this ISV software exposure, I was asked by some individuals to do a K2 vs Nintex comparison video.  Well, it takes more than just one video to really show the differences between the two.  So, here are a set of videos that you can review to see what the real differences are.  This is the list of videos that I will be posting in the next few days:

FYI: If you need Nintex Training or Nintex Subscription pricing, let me know! 

  • Headsup Install ( Videos : K2 vs Nintex)
    • Winner – Nintex
    • Why?
      • Nintex install takes around 10 minutes total for all components
      • Nintex install is simple .NET installer that adds solutions to your farm (and with Nintex Live, two windows services)
      • Nintex doesn't need a license key to install and configure
      • K2 install takes over an hour, and in many cases, up to 3 to get install properly
      • K2 requires a license to install it
      • K2 install has multiple components, each requiring much more time to install than the respective Nintex parts
  • Headsup ConfigurationAdmin UI (Videos – K2 vs Nintex)
    • Winner – Nintex
    • Why?
      • Nintex is SharePoint feature based – simply activate the features – all changes are inherited – no real updating of anything
      • Nintex is integrated into SharePoint Central Administration
      • Nintex has its own category of links, all of which are simple and easy to maneuver around
      • K2 requires you to leave SharePoint to configure anything admin
        related.  You can always put a link to the K2 admin UI in Central Admin,
        but you still have to leave SharePoint to get to it
      • The K2 admin UI is a bit slow and its not very intuitive.
      • K2 utilizes the App Model, this means extra work to deploy the app across web application boundaries (multiple app catalogs), and you have to "add" the app to each web you want to use it on
      • You must also ensure that you can connect to the K2 server for the app to function properly (mean properly setting up the SSL bindings on the K2 server).
      • K2 app updates mean you have to redeploy the app to each web (no easy automation available for this unless you are an old school SharePoint person)
  • Headsup Designer(s) (Videos – K2 vs Nintex)
    • Winner – Tie
      • Nintex has a very simple web based Designer for both workflows and forms.  It is integrated into the browser, no separate applications, all via a rich web client.
      • K2 has many ways to design "processes" aka workflows.  You can do it via the browser, or you can do it via Designer tools like K2 Studio, Visual Studio or a web based designer.
      • K2 is a bit more complex to work with and understand the various UIs versus the simple-ness of Nintex
  • Headsup Site and List Workflow (Videos – K2 vs Nintex)
    • Winner – Tie
    • Why
      • TODO
  • Headsup Actions (Videos – K2 vs Nintex)
    • Winner Nintex
    • Why
      • TODO
  • Headsup Forms (Videos – K2 vs Nintex)
    • Winner Nintex
    • Why?
      • TODO
  • Headsup Extensability (Videos – K2 vs Nintex)
    • Winner – Nintex
    • Why
      • TODO
  • Headsup O365 versions (Videos – K2 vs Nintex)
    • Winner – Nintex
    • Why?
      • Nintex just works.  Period.  Install the O365 Workflow and Forms apps, your up and running with a 30 day trial.  Easy.  After the trial, call your Nintex Partner (ACS of course) and we can get you activated same day.  Easy.
      • K2 takes a very complicated process of working with them to setup a backend tenant tied to your O365 tenant.  You must also be given the AppIt app to install into your app catalog in order to use it (it is not in the SharePoint store).
      • K2 also requires that you continue to use it or the OAuth token will expire and the system won't be able to talk back to your O365 instance.  You'll get a ton of emails notifying you of this until you click the link to refresh it.

Overall, I prefer Nintex over K2.  I'll get flak for that statement (but most of my friends have left K2 for various reasons I'm not at liberty to share at this point so maybe not).  Some will say, but have you seen the extensibliliy and architecture of K2 behind the scenes?  I'll simply say yes, but customers don't care about that.  They want something that is easy to install, easy to get started with and productive out of the box.  Nintex does that perfectly.

Enjoy,
Chris

Diff of SharePoint 2013 and 2016 codebase

Hi all,

I have done this the past two versions and every time I learn exactly what changed in the product.  Gives me a ton of stuff to explore and blog about later!  In this version, and as in the past two, there were some surprises that I will share here.  Keep in mind, the build that was released still doesn't have a ton of stuff "wired" up in terms of backend code.  Pretty ridiculous to see people touting "SharePoint 2016 training" based on a build that isn't even a Release Candidate (RC).  It's total bull.

Some pre-reqs that the current code-base requires (and is not installed as part on the installer process):

  • Reporting Services Add-In – SQL R2 2008 – 10.0
  • Reporting Services Add-In – SQL R2 2008 – 11.0
  • SQL Server ADOMD.NET (Analysis Services) – 10.0 
  • Windows Azure Storage 3.0.3.0
  • Microsoft.Azure.GraphClient.FirstClient – ??? – no idea where or what this is…has to do with UserProfiles and sync but is not included and can't be downloaded from what research I have done

Couple that show up that are installedconfigured, yet still interesting:

  • NewtonSoft.Json 6.0 – used in Search
  • System.Web.Http 5.2.2.0 – used in Search
  • Microsoft.Data (5.3 and 5.6) – seems some dlls have old 5.3 references that have not been updated

Interesting things I noticed:

  • ChicagoIntegration.dll – check it out…and the fact it has 0.0.0.0 as its version…LOL – used for ContentPush
  • Assemblies moved from GAC_MSIL to GAC_64 – yeah, much more performant for the target processor.  Many Search Dlls fell into this world.  I'll leave it to you to find the rest and see where performance was improved.
  • All things SilverLight and windows phone are gone!
  • SharePoint Education is now dead…as much as Rob thought it didn't ship before…LOL
  • Ceres Flows are not longer seperate Dlls…still need to find where these went!
  • New Ceres OfficeGraph and ContentPush Dlls are included now
  • Portable libraries are now included in the install
  • New format handlers for search and Office Excel files
  • New FileStorage code for Azure Storage interation
  • New O365 Resource discovery code
  • New Directory code with ServerStubs for CSOM

    There were a few Dlls added to the codebase.  These include (some are not verified and should be removed, but I only have so much time in the day):

    • AbsBlobStore
    • ChicagoIngestion
    • Microsoft.Ceres.AnalysisEngine.Managed
    • Microsoft.Ceres.Common.Tools.Sandbox
    • Microsoft.Ceres.ContentEngine.ContentPush
    • Microsoft.Ceres.ContentEngine.Operators.ContentPush
    • Microsoft.Ceres.ContentEngine.Operators.External
    • Microsoft.Ceres.ContentEngine.Operators.Mars
    • Microsoft.Ceres.ContentEngine.Operators.Security
    • Microsoft.Ceres.ContentEngine.Processing.ContentPush
    • Microsoft.Ceres.ContentEngine.Processing.External
    • Microsoft.Ceres.ContentEngine.Processing.Security
    • Microsoft.Ceres.DataLossPrevention
    • Microsoft.Ceres.DocParsing.External.Client
    • Microsoft.Ceres.DocParsing.External.Core
    • Microsoft.Ceres.DocParsing.FormatHandlers.ExcelGeneric
    • Microsoft.Ceres.DocParsing.FormatHandlers.ExcelLegacy
    • Microsoft.Ceres.DocParsing.FormatHandlers.ExcelOdbc
    • Microsoft.Ceres.DocParsing.FormatHandlers.PointPublishing
    • Microsoft.Ceres.External.ContentApi.GraphExtensions
    • Microsoft.Ceres.Flighting
    • Microsoft.Ceres.NlpBase.Phonetic
    • Microsoft.Ceres.Platform.Parallax
    • Microsoft.Ceres.SearchCore.FastServer.DumpLib.Managed
    • Microsoft.Ceres.SearchCore.FastServer.Managed
    • Microsoft.Ceres.SearchCore.GraphModel
    • Microsoft.Ceres.SearchCore.GraphQueryModel
    • Microsoft.Ceres.SearchCore.GraphSeedingModel
    • Microsoft.Ceres.SearchCore.GraphServer.Managed
    • Microsoft.Ceres.SearchCore.GraphStatusModel
    • Microsoft.Ceres.SearchCore.Indexes.GraphServerIndex
    • Microsoft.Ceres.SearchCore.IndexStorage
    • Microsoft.Ceres.SearchCore.KeyValueModel
    • Microsoft.Ceres.SearchCore.Tango
    • Microsoft.Ceres.SearchCore.TenantMapping
    • Microsoft.Ceres.SearchVssWriter
    • Microsoft.Data.Services.Client
    • Microsoft.Data.Services.Design
    • Microsoft.Data.Services
    • Microsoft.FileServices.Beta
    • Microsoft.FileServices.ServerStub.Beta
    • Microsoft.FileServices.ServerStub.V1
    • Microsoft.FileServices.ServerStub.V2
    • Microsoft.FileServices.V1
    • Microsoft.FileServices.V2
    • Microsoft.HtmlTrans.Interface
    • Microsoft.NaturalLanguage.Core
    • Microsoft.NaturalLanguage.KeywordExtraction
    • Microsoft.NaturalLanguage.KeywordExtraction.resources
    • Microsoft.O365.ResourceCatalog.PulsePackage
    • Microsoft.O365.ResourceCatalog.WexPackage
    • Microsoft.O365.ResourceDiscovery
    • Microsoft.OData.Core
    • Microsoft.OData.Edm
    • Microsoft.Office.Access.Server.Application
    • Microsoft.Office.Access.Server.Calculation
    • Microsoft.Office.Access.Server.Calculation.Interface
    • Microsoft.Office.Access.Server.Calculation.Interop
    • Microsoft.Office.Access.Server
    • Microsoft.Office.Access.Server.resources
    • Microsoft.Office.Access.Server.Security
    • Microsoft.Office.Access.Server.UI
    • Microsoft.Office.Access.Services.Application
    • Microsoft.Office.Access.Services.DataProxy
    • Microsoft.Office.Access.Services.DataServer
    • Microsoft.Office.Access.Services
    • Microsoft.Office.Access.Services.Moss
    • Microsoft.Office.Access.Services.Native
    • Microsoft.Office.Access.Services.resources
    • Microsoft.Office.Access.Services.Sql
    • Microsoft.Office.Access.Services.Storage
    • Microsoft.Office.Access.Services.UI
    • Microsoft.Office.BusinessApplications.Tools.AutoGen
    • Microsoft.Office.BusinessApplications.Tools
    • Microsoft.Office.BusinessApplications.Tools.Intl
    • Microsoft.Office.Client.Policy.Portable
    • Microsoft.Office.CompliancePolicy.Platform
    • Microsoft.Office.DocumentManagement.Intl
    • Microsoft.Office.DocumentManagement.ServerStub
    • Microsoft.Office.Excel.Server.CalculationServer.Proxy
    • Microsoft.Office.Excel.Server
    • Microsoft.Office.Excel.Server.MossHost
    • Microsoft.Office.Excel.WebUI
    • Microsoft.Office.Graphics.ShapeBuilder
    • Microsoft.Office.InfoPath.CLRLoader
    • Microsoft.Office.InfoPath
    • Microsoft.Office.InfoPath.Server.Administration.CommandLine
    • Microsoft.Office.InfoPath.Server
    • Microsoft.Office.InfoPath.Server.Host
    • Microsoft.Office.InfoPath.Server.Intl
    • Microsoft.Office.InfoPath.Server.Intl.Resources
    • Microsoft.Office.InfoPath.Server.Pages
    • Microsoft.Office.InfoPath.Server.RepairUtilities.Intl
    • Microsoft.Office.InfoPath.Server.RepairUtilities.Intl.Resources
    • Microsoft.Office.MhtExport
    • Microsoft.Office.Ofc
    • Microsoft.Office.Policy.Barcode.Generator
    • Microsoft.Office.Policy.intl
    • Microsoft.Office.Policy.ServerStub
    • Microsoft.Office.Project.Server.Database.Extension
    • Microsoft.Office.Project.Server.Optimizer
    • Microsoft.Office.SecureStoreService
    • Microsoft.Office.SecureStoreService.Intl
    • Microsoft.Office.Server.Chart
    • Microsoft.Office.Server.Chart.Intl
    • Microsoft.Office.Server.Chart.Intl.Resources
    • Microsoft.Office.Server.Conversion.Framework
    • Microsoft.Office.Server.Conversion.Storage
    • Microsoft.Office.Server.Conversion.ViewerInterface
    • Microsoft.Office.Server.Conversions
    • Microsoft.Office.Server.Diagnostics
    • Microsoft.Office.Server.Directory.SharePoint
    • Microsoft.Office.Server.Directory.SharePoint.Remote
    • Microsoft.Office.Server.Directory.SharePoint.Remote.ServerStub
    • Microsoft.Office.Server.Directory.SharePointInterface
    • Microsoft.Office.Server.Directory.SharePointInterface.ServerStub
    • Microsoft.Office.Server.FilterControls
    • Microsoft.Office.Server.ImportProfileProperties
    • Microsoft.Office.Server.Intl
    • Microsoft.Office.Server.PowerPoint
    • Microsoft.Office.Server.PowerPoint.Intl
    • Microsoft.Office.Server.PowerPoint.Intl.Resources
    • Microsoft.Office.Server.Sandbox
    • Microsoft.Office.Server.Search.Administration.MSSITLB
    • Microsoft.Office.Server.Search.ClickPredict
    • Microsoft.Office.Server.Search.ETW
    • Microsoft.Office.Server.Search.Intl
    • Microsoft.Office.Server.Search.Native
    • Microsoft.Office.Server.Search.Portability
    • Microsoft.Office.Server.Search.PowerShell
    • Microsoft.Office.Server.Search.RemoteSharepoint
    • Microsoft.Office.Server.UI
    • Microsoft.Office.Server.UserProfiles.Synchronization
    • Microsoft.Office.Server.WebAnalytics
    • Microsoft.Office.Server.WebAnalytics.Intl
    • Microsoft.Office.Server.WebAnalytics.Intl.Resources
    • Microsoft.Office.Server.WebAnalytics.UI
    • Microsoft.Office.ServiceInfrastructure.Definitions
    • Microsoft.Office.SharePoint.ClientExtensions.Intl
    • Microsoft.Office.SharePoint.Tools
    • Microsoft.Office.SlideLibrary
    • Microsoft.Office.TranslationServices.intl
    • Microsoft.Office.TranslationServices.intl.resources
    • Microsoft.Office.Visio.Server
    • Microsoft.Office.Visio.Server.GraphicsServer
    • Microsoft.Office.Visio.Server.Intl
    • Microsoft.Office.Visio.Server.Intl.Resources
    • Microsoft.Office.Web.Environment.OfficeServer
    • Microsoft.Office.Web.Sandbox
    • Microsoft.Office.Word.Server.intl
    • Microsoft.Office.Word.Server.intl.resources
    • Microsoft.Office.Workflow.Actions.intl
    • Microsoft.Office.Workflow.Actions.intl.resources
    • Microsoft.Office.Workflow.Feature
    • Microsoft.Office.Workflow.Routing
    • Microsoft.Office.Workflow.Routing.intl
    • Microsoft.Online.FileServices
    • Microsoft.Online.FileServices.ServerStub
    • Microsoft.PerformancePoint.Scorecards.DataSourceProviders.Standard
    • Microsoft.PerformancePoint.Scorecards.Server
    • Microsoft.Search.Platform.Parallax
    • Microsoft.Search.Server.comadmin
    • Microsoft.SharePoint.Client.Directory
    • Microsoft.SharePoint.Client.DocumentManagement.Portable
    • Microsoft.Sharepoint.Client.Publishing.Portable
    • Microsoft.SharePoint.Client.Runtime.Windows
    • Microsoft.SharePoint.Client.Runtime.WindowsPhone
    • Microsoft.SharePoint.Client.Runtime.WindowsStore
    • Microsoft.SharePoint.Client.Search.Applications.Portable
    • Microsoft.SharePoint.Client.Search.Portable
    • Microsoft.SharePoint.Client.ServerRuntime.OData
    • Microsoft.SharePoint.Client.UserProfiles.Portable
    • Microsoft.SharePoint.Client.WorkflowServices.Portable
    • Microsoft.Sharepoint.Excel.Proxies.Intl
    • microsoft.sharepoint.excel.proxies.intl.resources
    • Microsoft.Sharepoint.Sandbox
    • Microsoft.SharePoint.Search.Extended.Query
    • Microsoft.SharePoint.Search.Native
    • Microsoft.SharePoint.WorkflowServices
    • Microsoft.Spatial
    • Microsoft.Web.Constraint
    • Microsoft.Web.Design.Server
    • Newtonsoft.Json
    • System.Spatial
     
    Check out the ExcelPowerPivot workbook attached to this post for more details!
     
    Enjoy!
    Chris 

    Windows 1252 Encoding breaks Shredded Storage/Cobalt in 2010 to 2013 Upgrades

    I have several tools to test if an upgrade is successful and one of those tools hits every webpage and executes every web part on each page and then reports any errors.  I feed this data into a database that can be queried using Excel/PowerPivot.  I noticed an error that was showing rather frequently in the reporting:

    Cannot complete this action. Please try again.

    When looking at the ULS logs, you will find this:

    12/17/2014 18:47:39.08     w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Cobalt                            aintx    High        Failed in
    CobaltStream.LockBytes: ErrorException — Error: Unknown
    (Win32=0x80004003)
    — Error message: System.NullReferenceException: Object reference not
    set to an instance of an object. 
        at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromDocParams(SqlSession
    session, Guid guidSiteId, Int32 cbContent,
    Nullable`1 parentId, Guid docId, Nullable`1 level, SPChunkedArray`1
    rgbContent, Byte[] rgbRbsId, Int64 bsn, Byte partition, Int32 pageSize,
    Boolean bStartFilling)     at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromStreamParams(SqlSession
    session,
    Guid guidSiteId, Int32 cbContent, Guid docId, SPChunkedArray`1
    rgbContent, Byte[] rgbRbsId, Int64 bsn, Byte partition, Boolean
    bStartFilling)     at Microsoft….   
    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.08*    w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Cobalt                            aintx    High       
    …SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromStreamRowset(SqlSession
    session,
    SqlDataReader dr, Boolean startFilling, Nullable`1 newSiteId,
    SPDocumentStreamResult& stmResult)     at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromStreamRowset(SqlSession
    session, SqlDataReader dr, Boolean
    startFilling, SPDocumentStreamResult& stmResult)     at
    Microsoft.SharePoint.SPFileStreamStore.GetBlobsAfterBSN(Int64 bsnAfter,
    Nullable`1 typeFilter, Boolean doConsistencyCheck, Boolean&
    moreBlobs, Boolean allowExpiredBlobs, Nullable`1 quotaInBytes,
    Nullable`1
    typeLEQFilter, Nullable`1 typeGEQFilter, DisposalEscrow dispEsc)     at
    Microsoft.SharePoint.SPFileStreamHostBlobStore.ExecuteQuery(IEnumerable`1
    queries) —> System.NullRefer…   
    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.08*    w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Cobalt                            aintx    High        …enceException:
    Object reference not set to an instance of an object.     at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromDocParams(SqlSession
    session,
    Guid guidSiteId, Int32 cbContent, Nullable`1 parentId, Guid docId,
    Nullable`1 level, SPChunkedArray`1 rgbContent, Byte[] rgbRbsId, Int64
    bsn, Byte partition, Int32 pageSize, Boolean bStartFilling)     at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromStreamParams(SqlSession
    session,
    Guid guidSiteId, Int32 cbContent, Guid docId, SPChunkedArray`1
    rgbContent, Byte[] rgbRbsId, Int64 bsn, Byte partition, Boolean
    bStartFilling)     at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromStreamRowset(SqlSession
    session,
    SqlDataRead…    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.08*    w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Cobalt                            aintx    High        …er dr, Boolean
    startFilling, Nullable`1 newSiteId, SPDocumentStreamResult&
    stmResult)    
    at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromStreamRowset(SqlSession
    session, SqlDataReader dr, Boolean startFilling,
    SPDocumentStreamResult& stmResult)     at
    Microsoft.SharePoint.SPFileStreamStore.GetBlobsAfterBSN(Int64
    bsnAfter, Nullable`1 typeFilter, Boolean doConsistencyCheck,
    Boolean& moreBlobs, Boolean allowExpiredBlobs, Nullable`1
    quotaInBytes, Nullable`1 typeLEQFilter, Nullable`1 typeGEQFilter,
    DisposalEscrow dispEsc)     at
    Microsoft.SharePoint.SPFileStreamHostBlobStore.ExecuteQuery(IEnumerable`1
    queries)    
    — End of inner exception stack trace —  at   at
    Microsoft.SharePoint.SPFileStreamHostBlobStore.ExecuteQuery(IEnumerable`1
    queries)     …    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.08*    w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Cobalt                            aintx    High        …at
    Cobalt.HostBlobStorePullCommit.ExecuteQuery(IEnumerable`1 queries)    
    at
    Cobalt.CobaltFilePartition.StreamBlobSchemaHandler.EnsureReadSingleBlob()    
    at
    Cobalt.CobaltFilePartition.StreamBlobSchemaHandler.GetStream(ExtendedGuid
    streamId)     at
    Microsoft.SharePoint.CobaltStream.SetPrivateLockBytes()     at
    Microsoft.SharePoint.CobaltStream.ConfigureShredded(HostBlobStore
    hostBlobStore, IHostBlobStoreUpdateCallback
    callback, Schema schema, Boolean cellSchemaIsGenericFda, UInt64
    currentStreamLength, Boolean isTocFile)     at
    Microsoft.SharePoint.CobaltStream.EnsureStreamConfigured(Boolean
    isWrite)     at Microsoft.SharePoint.CobaltStream.Stat(STATSTG&
    statStorage, STATFLAG
    flags)    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.13     w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Database                          ab1a9    High        Failed to get
    document content data. System.NullReferenceException: Object reference
    not
    set to an instance of an object. 
        at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromDocParams(SqlSession
    session, Guid guidSiteId, Int32 cbContent, Nullable`1 parentId, Guid
    docId, Nullable`1 level, SPChunkedArray`1
    rgbContent, Byte[] rgbRbsId, Int64 bsn, Byte partition, Int32 pageSize,
    Boolean bStartFilling)     at
    Microsoft.SharePoint.CoordinatedStreamBuffer.SPCoordinatedStreamBufferFactory.CreateFromDocumentRowset(Guid
    databaseId, SqlSession session, SPFileStreamManager
    spfstm, Object[] metadataRow, SPRowset contentRowset,
    SPDocumentBindRequest& dbreq, SPDocumentBindResults& dbres)    
    at Microsoft.SharePoint.SPSqlClient.GetDocumentContentRow(Int32
    rowOrd,…    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.13*    w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Database                          ab1a9    High        … Object
    ospFileStmMgr, SPDocumentBindRequest& dbreq,
    SPDocumentBindResults& dbres)   
    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.13     w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Files                             abq2i    High        Could not get
    DocumentContent row: 0x80004003.
        7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.13     w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Files                             aiv4w    Medium      Spent 0 ms to
    bind -1 byte file stream 
       7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.13     w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    Files                             ahm9p    High       
    VhttpManager::getPageText has bad stream length for
    /Teamworks/Sites4/40060/SubPages/SNP.aspx   
    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d
    12/17/2014 18:47:39.13     w3wp.exe (0x04F4)                          
    0x1040    SharePoint Foundation            
    General                           8kh7    High        Cannot complete
    this action.  Please try again.    7fd7d69c-03d1-30ce-5edd-eb2d7d48e92d

    So what is it? 

    In the upgrade, anything that is tagged as Windows 1252 encoding is not properly converted into a shred.  You will find that the shreds for those files have a NULL Content column.

    How did this happen? 

    These files are typically from 2007 era days and if you have moved from 2003/2007 to 2010 and now to 2013, you will experience this issue.

    How do you fix this? 

    You have to open all the files in 2010, download the contents, then re-upload so the page is re-encoded to 65001 encoding.  How do you find all the files?  You can run this query across all your content databases to find the improperly coded files:

    select *
    from alldocs ad with (nolock)
    where
    extensionforfile = 'aspx'
    and charset = 1252
    order by dirname, leafname

    This will give you all the files that will fail to upgrade to 2013. NOTE:  You are not told that the files failed to upgrade in the upgrade process.  If you have already upgraded to 2013 and are outside your rollback window, you'll have to hope you can get the files from an archive and then restore them manually.

    Enjoy!
    Chris

    Just another Don’t Do this when Developing SharePoint Blog Post – IT IS NEEDED!

    Ok, you hear over and over and over again, don't do this, don't do that when developing SharePoint.  But it seems that not too many people listen to all that wonderful best practice guidance.  As part of the eBay project, we inherited A LOT of code from previous developers and consultants (which will remain unnamed, but ask me at SPC and I'll tell you).  This code has so many bad components to it it was unbelieveable.  Every SharePoint rule was broken.  There were so many broken things that we couldn't fix them all, so we focused on the most important and visable items. 

    Maarten has done a great job of summarizing all the things we had to do to fix this code.  Check out his blog post here:

    http://withinsharepoint.com/archives/186

    Enjoy!
    Chris

    SharePoint 2010 Delegated Administration

    Have been wanting to try this for a while now and just now got some time to do it today.  The Central Administration site is just a SharePoint site with libraries and links, so I was curious what would happen if you were added to the site as a simple reader.  Here's the results:

    As a reader and contributor, you do not gain access to Central administration and you will get the access denied error message.  The real magic comes in being in a specifically names group, there are two groups in the SCA:

    • Farm Administrators
    • Delegated Administrators

    Full Control, Contributor and Read permission levels have no role to play in the links on the SCA.  What does matter is what group you reside in.  Being a Farm Administrator allows you to do anything in the SCA.  Being a Delegated lets you do a subset of actions, one of the items you cannot do is to create new Web Applications, but when it comes to the majority of other things, you can do them!  The thing that I would be more insterested in how one would target the links in Quick Launch to specific people.  IE, something like the following:

    • Web Application manager
    • Service Account Manager
    • Service Application Manager (like a global service app manager role rather than manually apply to each one)
    • Backup Restore Manager
    • Content Deployment Manager

    Service applications have a completed different architecture to them.  Each service application can have an "Administrator" assigned to it.  I found a great article that describes this process here:

    http://www.sharepointanalysthq.com/2010/10/creating-a-delegated-administrator-for-a-service-application/

    However, this also doesn't have much in terms of granular controls.  Its all or nothing for most of them.  These need more granular controls setup for them.  Security seems to be an afterthought in SharePoint, has been, probably always will be.

    Chris

    Advanced San Diego SharePoint Users Group (SanSpug.org)!

    It is my pleasure and honor to announce a NEW SharePoint Users Group will be started in San Diego! The formal announcement will be at the SharePoint Launch Party at Karl Strauss.  All attendees to the Launch Party will get a complimentary membership for the first years meetings! 

    Last chance to sign up before the event is here

    This group will be hosted by Architecting Connected Systems, New Horizons of Southern California and Hersey Technologies.  This group will be focused on VERY advanced topics of all kinds!  For more information, check out our SharePoint 2010 site here:

    http://www.sanspug.org

    Meetings will be the 1st Tuesday of every month with the first meeting on June 1st, 2010!

    If you would like to become a member, please register and drop us a line, if you would like to sponsor our meetings, drop me a line.

    Chris