Do you get any error message when you try to open that url directly in the browser?
We started having similar problem when we moved to 7.18 back in January. Prior to this I already had multipleSiteBindingsEnabled="true" in the config and it was working fine with 7.13.3. Now the internal search in the CMS doesnt work at all.
Ignore the replaced-on-purpose I removed the host name. Also checked that the indexing service was availble on the hostname defined in the config.
I used a 3rd party tool to check and search the lucene index to ensure it wasnt corrupted.
Still a mystery to us, perhaps its fixed in a newer build than 7.18 ?
2015-06-24 00:00:12,075 [12] ERROR SearchSettings: Update batch could not be sent to service uri 'http://replaced-on-purpose/IndexingService/IndexingService.svc/update/?accesskey=local'. Message: 'The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse()
at EPiServer.Search.RequestHandler.MakeHttpRequest(String url, NamedIndexingServiceElement namedIndexingServiceElement, String method, Stream postData, Action`1 responseHandler)
at EPiServer.Search.RequestHandler.SendRequest(SyndicationFeed feed, String namedIndexingService, Collection`1 ids)'
2015-06-24 00:00:12,077 [12] ERROR SearchSettings: Send batch for named index 'serviceName' failed. Items are left in queue.
2015-06-24 00:00:42,279 [7] ERROR SearchSettings: Update batch could not be sent to service uri 'http://replaced-on-purpose/IndexingService/IndexingService.svc/update/?accesskey=local'. Message: 'The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse()
at EPiServer.Search.RequestHandler.MakeHttpRequest(String url, NamedIndexingServiceElement namedIndexingServiceElement, String method, Stream postData, Action`1 responseHandler)
at EPiServer.Search.RequestHandler.SendRequest(SyndicationFeed feed, String namedIndexingService, Collection`1 ids)'
2015-06-24 00:00:42,280 [7] ERROR SearchSettings: Send batch for named index 'serviceName' failed. Items are left in queue.
2015-06-24 00:01:12,510 [16] ERROR SearchSettings: Update batch could not be sent to service uri 'http://replaced-on-purpose/IndexingService/IndexingService.svc/update/?accesskey=local'. Message: 'The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse()
at EPiServer.Search.RequestHandler.MakeHttpRequest(String url, NamedIndexingServiceElement namedIndexingServiceElement, String method, Stream postData, Action`1 responseHandler)
at EPiServer.Search.RequestHandler.SendRequest(SyndicationFeed feed, String namedIndexingService, Collection`1 ids)'
2015-06-24 00:01:12,510 [16] ERROR SearchSettings: Send batch for named index 'serviceName' failed. Items are left in queue.
2015-06-24 00:01:42,721 [12] ERROR SearchSettings: Update batch could not be sent to service uri 'http://replaced-on-purpose/IndexingService/IndexingService.svc/update/?accesskey=local'. Message: 'The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse()
at EPiServer.Search.RequestHandler.MakeHttpRequest(String url, NamedIndexingServiceElement namedIndexingServiceElement, String method, Stream postData, Action`1 responseHandler)
at EPiServer.Search.RequestHandler.SendRequest(SyndicationFeed feed, String namedIndexingService, Collection`1 ids)'
2015-06-24 00:01:42,722 [12] ERROR SearchSettings: Send batch for named index 'serviceName' failed. Items are left in queue.
2015-06-24 00:02:12,940 [16] ERROR SearchSettings: Update batch could not be sent to service uri 'http://replaced-on-purpose/IndexingService/IndexingService.svc/update/?accesskey=local'. Message: 'The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse()
at EPiServer.Search.RequestHandler.MakeHttpRequest(String url, NamedIndexingServiceElement namedIndexingServiceElement, String method, Stream postData, Action`1 responseHandler)
at EPiServer.Search.RequestHandler.SendRequest(SyndicationFeed feed, String namedIndexingService, Collection`1 ids)'
By the looks of it custom errors and http errors being enabled in web.config is getting in the way in my case on our content authoring server. I added passthrough option to to indexingservice.svc element and I can now get to /IndexingService/IndexingService.svc which shows "endpoint not found" as I would expect
<location path="IndexingService/IndexingService.svc"> <system.web> <httpRuntime maxQueryStringLength="65536" /> </system.web> <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString="65536" /> </requestFiltering> </security> <httpErrors existingResponse="PassThrough" /> </system.webServer> </location>
Although I'm still seeing these in the logs.
2015-06-26 17:30:34,564 [12] ERROR SearchSettings: Update batch could not be sent to service uri 'http://my-server-here-/IndexingService/IndexingService.svc/update/?accesskey=local'. Message: 'The remote server returned an error: (400) Bad Request. at System.Net.HttpWebRequest.GetResponse() at EPiServer.Search.RequestHandler.MakeHttpRequest(String url, NamedIndexingServiceElement namedIndexingServiceElement, String method, Stream postData, Action`1 responseHandler) at EPiServer.Search.RequestHandler.SendRequest(SyndicationFeed feed, String namedIndexingService, Collection`1 ids)'2015-06-26 17:30:34,565 [12] ERROR SearchSettings: Send batch for named index 'serviceName' failed. Items are left in queue.
Tried rebuilding the index using the hidden page on the CMS but still no luck.
What about Event Logs if you enable "Failed Request Tracing" feature in IIS? I remeber that I struggled with the same case while ago, but didn't write down solution :(
We're still no closer to a solution unfortunately (mainly due to other projects taking priority). Our sites are hosted on Azure and we're wondering if having each site hosted in a separate webapp is perhaps the cause of the issue (rather than having it all in one webapp and having Episerver handle the differerent url requests).
Douglas did you find a solution for this problem in the end? I'm getting the same error in log files..
Not yet no, its been deemed zero priority to fix at the moment so havent progressed it. I think using failed request tracing would be the way to debug further.
In every solution I have had problem now I have solved it by creating a new empty site that only are used to hold the index and then publish that to only one of the webservers.
This is how you have to do it when you start to use Microsoft Azure and it is a good way to isolate EPiServer search.
What do you mean by "then publish that to only one of the webservers." Henrik? I have Alloy Demo site and search is working fine. Still it doesn't help me much since I haven't found any difference with how my project is set up. Do you mean I should move my project files into the empty site if the search would work there?
I will do a blog post on it next week.
Set it up like this:
In your solution in visual studio add a new empty web project. Add EPiServer search nuget package to it and remove that nuget package from the regular website. Set it up with a unique name for the index and allow all addresses to access it (this is done in the new project), see example here http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-CMS/8/Search/Installing-and-deploying-Search-Service/.
Then in your regular website change so it will talk to the index on the new site with that unique name you have choose.
Then on your live servers make your that you are only creating the new site on one of the servers in your load balanced environment and add then add some web transformation to support that all servers (your regular site) are just talking to the site and server you deployed your search site on. This you can do by either putting it on a special port (might not be opened in the firewall) or adding host name to it and then add that info to the host-files one the servers.
a little hard to explain in text but I will do a post on it next week when I am near a computer again :-)
Thank you Henrik for your detailed reply. I have done the following steps:
1- I have installed an empty web project and EpiServer Search on it via nuget. It is an entirely empty site, not EPiServer or anything else installed on it. (It was a bit unclear if I was supposed to install EPiServer or just Search)
2- I have created a new web site in IIS (domain name in hosts file) so I can access the newly installed indexing service from my main project, which is the whole point as I understand it. There must be though missing configurations/handlers 'cause when surfing to the URL of the new service (say http://www.emptysite.local/IndexingService/IndexingService.svc) then i get the following error:
instead of the "Endpoint not found" message. Am i missing any step here?
Hi,
We currently have a site that has 3 different bindings, but uses the same episerver instance and a separate site for searching.
However, when trying to run the tool at CMS/Admin/IndexContent.aspx, nothing is happening and I am getting an error in the log such as this:
2015-06-04 10:33:43,327 [16] ERROR SearchSettings: Could not reset index '' for service uri 'http://localhost:33012/IndexingService/IndexingService.svc/reset/?namedindex=&accesskey=*****************************'. Message: The remote server returned an error: (500) Internal Server Error. at System.Net.HttpWebRequest.GetResponse()
at EPiServer.Search.RequestHandler.MakeHttpRequest(String url, NamedIndexingServiceElement namedIndexingServiceElement, String method, Stream postData, Action`1 responseHandler)
at EPiServer.Search.RequestHandler.ResetIndex(String namedIndexingService, String namedIndex)
I am pointing my search, in web.config, to point to the port that the search is running off, in IIS Express, and can see that is alive by going to IndexingService/IndexingService.svc. However, when firing off the search I can see it's not hitting that code at all, as my breakpoints aren't being reached.
I have enabled.
Is there anything else I'm potentially missing?