FAST Seach – Admin OM Exception occurred. Message: Failed to communicate with the WCF service – The trust relationship between the primary domain and the trusted domain failed.

I was getting this error:

Admin OM Exception occurred. Message: Failed to communicate with the WCF service. , Error Code:e107, Stacktrace:Microsoft.SharePoint.Search.Extended.Administration.Common.AdminException: Failed to communicate with the WCF service. —> System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The trust relationship between the primary domain and the trusted domain failed. 

This was a great blog to point me to the issue.  Turns out I had two domains in my Active Directory that had lost the trust setup but nothing was broken with my Active Directory or FAST setup.  I had to delete the trusts and add them back, then it started working again.

http://blog.isaacblum.com/tag/the-trust-relationship-between-the-primary-domain-and-the-trusted-domain-failed/

Enjoy!
Chris

FAST Search for SharePoint – Step by Step Install

By popular demand, here is the FAST Search step by step install steps!  If you like it, add me to twitter http://twitter.com/givenscj

Enjoy!
Chris

Task 1 – Setup FAST Search Center         

  1. Open SharePoint Central
    Administration
  2. Click “Application
    Management”
  3. Click “Create Site
    Collection”
  4. Select the web application
    called “SharePoint –115”
  5. For site name, type “FAST
    Search”
  6. For url, type FAST
  7. For template, select
    “Enterprise->FAST Search Center”
  8. For site collection admin,
    type “Administrator”
  9. Click “Create”

Task 2 – Install FAST
Search

  1. Run the following command to
    extract the files (beta installer doesn’t work quite right)
    • D:Lab
      Work<labno> en_fast_search_server_sharepoint_2010_beta_x64_x16-29476
      /extract:c: emp
  2. Run “C: empPrerequistieInstaller”
  3. The splash screen will open:

  1. Click “Next”
  2. The prereqs for FAST Search
    will be installed

  1. Click “Finish”
  2. Run “fsserver”
    • This will create a new
      directory called “C:FASTSearch”
  3. Click “Start”, right click
    “Computer”, select “Properties”
  4. Click “Advanced System
    Settings”
  5. Click “Environment Variables”
  6. Add the following to your
    path variable
    • “C:FASTSearchinstallerscripts”
  7. Run the SharePoint 2010
    Management Shell
  8. Run the following:
    • Psconfig.ps1 –action i
      –roleName single –userName contosoadministrator –localMachineName <FQDNservername>
      -databaseConnectionString <dbservername> –databaseName FASTSearch
  9. Enter the password,
    “Pa$$w0rd”
  10. For self signed password,
    type “Pa$$w0rd”
  11. Reboot the computer
  12. Run the following command:
    • ConfigureSharePointAuthorization
      –installedMode Advanced

Task 3 – Start
Services

  1. Open the services applet,
    ensure the following are started:
    • All “FAST*”
    • Forefront*
    • SharePoint Server
      Search 14
    • SharePoint Foundation
      Search V4

Task 4 – Setup FAST
Search Query Service

  1. Open SharePoint Central
    Administration
  2. Click “Application Management”
  3. Click “Manage service
    applications”
  4. Click “New->Search
    Service”
  5. For name, type “FAST Search
    Query”
  6. For the type, select “FAST
    Search Query”
  7. For the application pool for
    admin server, type “FASTSearchAdminPool”
  8. For the application pool for
    search query and site settings”, type “FASTSearchQueryPool”
  9. For Query Service Location,
    type “https://sharepoint2010.contoso.corp:13286”
  10. For Administration Service
    Location, type “net.tcp://sharepoint2010.contoso.corp:13256”
  11. For Resource Store Location,
    type “http://sharepoint2010.contoso.corp:13255”
    • NOTE: these port
      numbers are in the “C:FASTSearchInstall_Info.txt” file – minus the
      actual protocol data unfortunately
  12. For account, type
    “contosoadministrator”
  13. Click “Ok”
  14. Click “Application
    Management”
  15. Click “Manage service
    applications”
  16. Click “New->Search
    Service”
  17. For name, type “FAST Search
    Connector”
  18. For type, select “FAST Search
    Connector”
  19. For application pool, type
    “FASTConnectorPool”
  20. For content distributor, type
    “sp2010.contoso.com:13329”
  21. For the content collection,
    type “sp”
    • NOTE:  the content collection “sp” is the
      default one created by the install and configuration steps
  22. Click “OK”

Task 5 – Setup
Certificate

  1. Open a SharePoint 2010
    Management Console
  2. Run the following commands
    (be sure to replace the two bolded items with your server and application
    name): 


$currentdir = pwd
$sharepointSTSCertFilename = Join-Path -Path $currentdir -ChildPath 'MOSS_STS.cer'
$fastsearchqrserver = 'fs14qrserver.mydomain.com'
$fastSSAName = 'FASTSearchServiceApplication'
 
$stsCert = (Get-SPSecurityTokenService).LocalLoginProvider.SigningCertificate
$stsCert.Export("cert") | Set-Content -encoding byte $sharepointSTSCertFilename
 
$queryServiceLocationValue = "http://" + $fastsearchqrserver + ":13287"
Set-SPEnterpriseSearchExtendedQueryProperty -SearchApplication $fastSSAName -Identity "FASTSearchQueryServiceLocation" -Value $queryServiceLocationValue
Set-SPEnterpriseSearchExtendedQueryProperty -SearchApplication $fastSSAName -Identity "FASTSearchQueryServiceWinAuth" -Value false
Get-SPEnterpriseSearchExtendedQueryProperty -SearchApplication $fastSSAName
IISReset


Open a FAST Search Management
Console

  1. Run the following commands
    (be sure to replace the path to the certificate):


$sharepointSTSCertFilename = 'FULLPATH_TO_MOSS_STS.cer'
 
# Import SharePoint Security Token Service Certificate
$trustedPeopleCertStore = new-object System.Security.Cryptography.X509Certificates.X509Store('TrustedPeople', [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)
$trustedPeopleCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$sharepointSTSCert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2
$sharepointSTSCert.Import($sharepointSTSCertFilename)
$trustedPeopleCertStore.Add($sharepointSTSCert)
$trustedPeopleCertStore.Close()
 
# Configure FAST Search Server to trust SharePoint Security Token Service certificate
Set-FASTSearchQRProxyMOSSConfiguration -STSThumbprint $sharepointSTSCert.Thumbprint -RestartServices true

  1. Open the C:FASTSearchinQRProxyService.exe.config
  2. Uncomment the following line
    that starts with:

<!--<binding
name="HTTP_CLAIMS_INSECURE">...

  1. Enable HTTPS searching by
    running the following commands

#HTTPs – EXPORT CERT

$currentdir = pwd
$sharepointSTSCertFilename = Join-Path -Path $currentdir -ChildPath 'MOSS_STS.cer'
$fastsearchqrserver = 'sharepoint2010.contoso.corp'
$fastSSAName = 'FAST Search Query'
$sharepointServicesCertFilename = Join-Path -Path $currentdir -ChildPath 'MOSS_SERVICES.pfx'
$sharepointServicesCertPassphrase = $host.ui.PromptForCredential("Need Credentials", "Please enter a passphrase for the SharePoint Services Cert", "CERT_PASSPHRASE", "")
$tempStringValue = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($sharepointServicesCertPassphrase.Password)
$plainTextPassPhrase = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($tempStringValue)
$stsCert = (Get-SPSecurityTokenService).LocalLoginProvider.SigningCertificate
$stsCert.Export("cert") | Set-Content -encoding byte $sharepointSTSCertFilename
$sharePointCertStore = new-object System.Security.Cryptography.X509Certificates.X509Store('SharePoint', [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)
$sharePointCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
$servicesCert = $sharePointCertStore.Certificates.Find([System.Security.Cryptography.X509Certificates.X509FindType]::FindBySubjectName,'SharePoint Services', $false)
$servicesCert.Export("pfx", $plainTextPassPhrase) | Set-Content -encoding byte $sharepointServicesCertFilename
$servicesCert2 = new-object System.Security.Cryptography.X509Certificates.X509Certificate2
$servicesCert2.Import($sharepointServicesCertFilename, $plainTextPassPhrase, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::DefaultKeySet)
$trustedPeopleCertStore = new-object System.Security.Cryptography.X509Certificates.X509Store('TrustedPeople', [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)
$trustedPeopleCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$trustedPeopleCertStore.Add($servicesCert2)
$trustedPeopleCertStore.Close()
 
$queryServiceLocationValue = "https://" + $fastsearchqrserver + ":13286"
Set-SPEnterpriseSearchExtendedQueryProperty -SearchApplication $fastSSAName -Identity "FASTSearchQueryServiceLocation" -Value $queryServiceLocationValue
Set-SPEnterpriseSearchExtendedQueryProperty -SearchApplication $fastSSAName -Identity "FASTSearchQueryServiceWinAuth" -Value false
Get-SPEnterpriseSearchExtendedQueryProperty -SearchApplication $fastSSAName
IISReset

#HTTPS – IMPORT CERT

$sharepointSTSCertFilename = 'c:usersadministratorMOSS_STS.cer'
$sharepointServicesCertFilename = 'c:usersadministratorMOSS_SERVICES.pfx'
$sharepointServicesCertPassphrase = $host.ui.PromptForCredential("Need Credentials", "Please enter the passphrase for the SharePoint Services Cert", "CERT_PASSPHRASE", "")
$tempStringValue = [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($sharepointServicesCertPassphrase.Password)
$plainTextPassPhrase = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto($tempStringValue)

# Import SharePoint Security Token Service Certificate
Add-PSSnapin Microsoft.FASTSearch.Powershell
$trustedPeopleCertStore = new-object System.Security.Cryptography.X509Certificates.X509Store('TrustedPeople', [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)
$trustedPeopleCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$sharepointSTSCert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2
$sharepointSTSCert.Import($sharepointSTSCertFilename)
$trustedPeopleCertStore.Add($sharepointSTSCert)

# Import SharePoint Security Token Service Certificate
$trustedPeopleCertStore = new-object System.Security.Cryptography.X509Certificates.X509Store('TrustedPeople', [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)
$trustedPeopleCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$sharepointSTSCert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2
$sharepointSTSCert.Import($sharepointSTSCertFilename)
$trustedPeopleCertStore.Add($sharepointSTSCert)
$trustedPeopleCertStore.Close()
 
# Import SharePoint Services Certificate
$sharepointServicesCert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2
$sharepointServicesCert.Import($sharepointServicesCertFilename, $plainTextPassPhrase, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::DefaultKeySet)
$personalCertStore = new-object System.Security.Cryptography.X509Certificates.X509Store('My', [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)
$personalCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$personalCertStore.Add($sharepointServicesCert)
$personalCertStore.Close()
$rootCertStore = new-object System.Security.Cryptography.X509Certificates.X509Store('Root', [System.Security.Cryptography.X509Certificates.StoreLocation]::LocalMachine)
$rootCertStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
$rootCertStore.Add($sharepointServicesCert)
$rootCertStore.Close()
 
# Configure FAST Search to trust SharePoint Security Token Service Certificate
Set-FASTSearchQRProxyMOSSConfiguration -STSThumbprint $sharepointSTSCert.Thumbprint -RestartServices true
$sharepointServicesCertThumbprint = $sharepointServicesCert.Thumbprint
netsh http add sslcert ipport=0.0.0.0:13286 certhash=$sharepointServicesCertThumbprint 'appid={a5455c78-6489-4e13-b395-47fbdee0e7e6}'

Task 6 – Re-index content

  1. Open SharePoint Central
    Administration
  2. Click “Application
    Management”
  3. Click “Manage service
    applications”
  4. Click “FAST Connector”
  5. Click “Content Sources”
  6. Click “New Content Source”
  7. For name, “SharePoint Sites”
  8. For start address, type http://servername:100
  9. Check the “Start full crawl
    of this content source”
  10. Click “OK”
  11. Wait for the crawl to finish

 Task 7 – Test FAST
Search

  1. Open the http://servername:115
    site
  2. Type in and run a query

 

FAST Search Installer – Getting it to work!

So it won't install eh?  Run this command to extract the files, then just run the files.  Seems the installer wrapper is messed up:

  • en_fast_search_server_sharepoint_2010_beta_x64_x16-29476
    /extract:c: emp

This will extract the files to the temp directory, then you do the following:

  • Run PrerequisiteInstaller
  • Run fsserver

After running fsserver, you will have a new directory on your server called c:FASTSearch, you will need to do the following:

  • Add "C:FASTSearchinstallerscripts" to your path
  • Open SharePoint 2010 Management console
  • Run the following:
    • Psconfig.ps1 –action i –roleName single –userName contosoadministrator –localMachineName <servername> -databaseConnectionString “<dbservername>” –databaseName FASTSearch

As Emeril would say "BAM", you got FAST Search INSTALLED!  Woohoo!

HINTS:

  • If you uninstall FAST Search using "psconfig -action u", you will lose a file called "C:Program FilesCommon FilesMicrosoft SharedULS14ULSControllerService.exe" 
  • The fix for this is to uninstall the ULS components, then reinstall them again.  The file will return and you can reinstall/config FAST Search

Enjoy,
Chris