Let me start by saying thanks to @johankroese and @vanHooijdonk for helping with troubleshooting this issue!
If you want the solution without going through the full post, scroll down to the end of this blog post.
The new Cloud Hybrid Search has been released in preview in September 2015. Seeing the demos I was really excited to try this. One of our customers was already in need of this technology, so we proposed to configure Cloud Hybrid Search on their test environment.
The onboarding process seemed pretty straightforward and we used http://blogs.msdn.com/b/spses/archive/2015/09/15/cloud-hybrid-search-service-application.aspx as a reference. We read the documentation, grabbed the on-boarding script, installed the prerequisites and got started.
After running the onboarding script the first time, some errors were thrown, but after running the script for the 2nd time, everything seemed to work out just perfectly. All steps were executed, no red parts in the output of the script.The next step would be to start a Full crawl. We created a specific content source in the on-premises environment. This content source contains only 1 site collection with a few documents inside, just to check the functionality. Unfortunately, the crawl failed. After inspecting the log, we saw the following:
AzureServiceProxy caught Exception: *** Microsoft.Office.Server.Search.AzureSearchService.AzureException: AzurePlugin was not able to get Tenant Info from configuration server at Microsoft.Office.Server.Search.AzureSearchService.AzureServiceProxy.GetAzureTenantInfo(String portalURL, String realm, String&amp; returnPropertyValue, String propertyName) at Microsoft.Office.Server.Search.AzureSearchService.AzureServiceProxy.SubmitDocuments(String azureServiceLocation, String authRealm, String SPOServiceTenantID, String SearchContentService_ContentFarmId, String portalURL, String testId, String encryptionCert, Boolean allowUnencryptedSubmit, sSubmitDocument documents, sDocumentResult&amp; results, sAzureRequestInfo&amp; RequestInfo) ***
For some reason, SharePoint wasn’t able to submit index data for documents to Azure for processing. We created a thread on the TechNet forum for Cloud Search Service Application Preview.
As we were aware that a proxy was being used, we started checking the proxy configuration. There are a lot of places where you can configure a proxy if you are looking for them:
- Netsh winhttp set proxy
- Browser settings for service account
- Search Service Application proxy
After trying all these, we still couldn’t get it to work. After using Wireshark, we found out that the upload was still not using our proxy server. Instead, it tried uploading directly to Azure.
After discussing this with my colleague @vanHooijdonk, he reminded me that there is another place where you can configure proxy settings. The machine config: “C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config”
<system.net> <defaultProxy> <proxy usesystemdefault="false" proxyaddress="http://10.1.10.1:8080" bypassonlocal="true" /> </defaultProxy> </system.net>
After applying the proxy there, everything started to work! Place the proxy settings anywhere between your <configuration> and </configuration> tag. Personally, I placed it right before the end, so I can find it easier next time.