Cloud Hybrid Search proxy settings

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.Cloud Hybrid Search proxy settingsThe 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& 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[]& results, sAzureRequestInfo& 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:

  • Web.config
  • 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.

The solution
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 the <configuration> and </configuration> tag. Personally, I placed it right before the end, so I can find it easier next time.

Please read my full blog post on how to configure Cloud Hybrid Search here: https://www.sharepointrelated.com/2015/12/21/everything-you-need-to-know-about-cloud-hybrid-search/

Thanks to @johankroese and @vanHooijdonk for helping with troubleshooting this issue!

7 thoughts on “Cloud Hybrid Search proxy settings

  1. Pingback: Everything you need to know about Cloud Hybrid Search | Blog by Nico Martens

  2. Pingback: Cloud hybrid search considerations - Blog by Nico MartensBlog by Nico Martens

  3. Pingback: Everything you need to know about Cloud Hybrid Search - Blog by Nico MartensBlog by Nico Martens

  4. Hi Nico. I am following up your blog post regarding Proxy and Hybrid Search. You wrote that you have changed the machine.config file .NET folder to enable proxy. Is this the only place needed to be changed? How about the other places? Also, do you need to restart the server(s) after changing the file?
    And in a multi-server environment, would you recommend to change it in all the servers?
    Hope you can help me as I am stuck and your post is the one that come closest to a real solution.
    Thanks a lot.
    Alex

    • Hi Alex,

      For hybrid search this is the only place it is the only place you have to change it. A reboot shouldn’t be required, but you might have to do an IISRESET.
      In a multi-server environment, you should at least change it on all the crawling servers, but you might as well do it on all others.

      If anything is unclear or if you have any other questions let me know, and I’ll try to help.

      • Hey Nico. Thanks for the answer.
        I still have issues.. In my environment we have a specific machine only for the Cloud SSA. In this machine (and in this machine only) I have configured the Netsh, Browser settings for the service account, the proxy in the Search service application and the config.machine. I didn’t configure the Web.config because this server only has services related to the could SSA so I am not sure..
        But still wireshark shows a attempt to connect directly to a Microsoft IP.
        Any other advises??
        Thanks!

        • Hi Alex,

          You shouldn’t have to configure the netsh or browser settings for the service account. The proxy in the search service application is not needed either.
          You just have to configure the machine.config.

          That should fix it.

Leave a Reply

Your email address will not be published. Required fields are marked *