We have a website using umbraco 4.5.2 in a load balanced environment and the only way we can get the content updates to show is by touching the web.config.
The www.domain.com is the domain that goes through the load balancer.
We have Server1, with web1.domain.com pointing to this server and contains the master umbraco, and how we log into umbraco
When we publish a page in umbraco on web1.domain.com (Server1), and view that page from www.domain.com, on either server, the content update is not reflected.
If we "Republish entire site", the content update will be reflected when www.domain.com routes to the Server2, but it still does not show if the www.domain.com request is routed to Server1.
The only way we can have that content update show on Server1, is by touching the web.config to reset the cache.
I have searched the forums, and really havent found and answer. Has anyone experienced this, and/or have a solution, so the cache gets updated?
Here is the umbracoSettings.config setup for distributed calls
Thats what I have been told, but we don't manage the servers directly, but I will doulbe check again.
Would the umbraco.config on Server1 even get updated if Server1 couldn't call itself on web1.domain.com? The content is getting updated in the umbraco.config, it just doesn't display on Server1 under www.domain.com, until the cache is reset by touching the web.config.
In answer to your question "Would the umbraco.config on Server1 even get updated if Server1 couldn't call itself on web1.domain.com?" the answer is no. Make sure that the server can ping itself on that domain. Also make sure that the Network Service has write permissions to that file (and your whole site for that matter).
Check the umbracoLog table for .net exceptions. They are helpful in determining the issues. You can also install the logManager package to view errors.
No, I don't think the umbraco.config would get updated if there was no connection.
Can you verify that Server1 only has _one_ IIS site pointing to the umbraco install? So that the same IIS site handles both web1.domain.com and www.domain.com? The problem could occur if they are separate processes, so that the process running web1 would actually get it's cache updated, but the one running www would not. This is not actually isolated to a load balanced environment, but would also occur in a single server setup.
What happens if you disable the distributedCalls? Does Server1 update as expected then? On both web1 and www domains?
As mentioned above in the posts, the server has to be able to access both sites, including it's self, otherwise, it won't update the cache (as soon as one call timeouts, it's drops the whole operation)
We had the same issue, to check, log on to the server via Remote Desktop etc, load internet explorer, and try opening the page:
Both should be accessible without authentication, if either one isn't then this is likley to be the problem, also, check if the server uses a proxy to access the internet, this could also be causing Umbraco some problems.
Server1 can see itself, as the umbraco.config file is getting udpated, and there are no errors or exceptions in the umbracoLog table. I've got a request into the server admin about how the IIS site is setup and making sure its just 1 IIS site on Server1 that handles both web1. and www. and the other various suggestions on this thread.
I will report back once I find the solution or if problems still persist.
Thanks guys for your help, its greatly appreciated!
The culpirt was web1. and www. each was given their own IIS Site on the server when moved to load-balancing. The two domains are now being handled by the same IIS Site, and everything is working as expected.
Thanks for all the help, all great info to know with distributed calls
Distributed Calls and Content Refreshing
We have a website using umbraco 4.5.2 in a load balanced environment and the only way we can get the content updates to show is by touching the web.config.
The www.domain.com is the domain that goes through the load balancer.
We have Server1, with web1.domain.com pointing to this server and contains the master umbraco, and how we log into umbraco
We have Server2, with web2.domain.com pointing to this server containing the slave umbraco (following the setup from http://umbraco.org/help-and-support/video-tutorials/for-site-builders/load-balancing/how-to-setup-load-balancing)
Both point to the same sql server.
When we publish a page in umbraco on web1.domain.com (Server1), and view that page from www.domain.com, on either server, the content update is not reflected.
If we "Republish entire site", the content update will be reflected when www.domain.com routes to the Server2, but it still does not show if the www.domain.com request is routed to Server1.
The only way we can have that content update show on Server1, is by touching the web.config to reset the cache.
I have searched the forums, and really havent found and answer. Has anyone experienced this, and/or have a solution, so the cache gets updated?
Here is the umbracoSettings.config setup for distributed calls
Thanks in advance!
Tim
Can Server1 reach itself on the web1.domain.com?
When distributedCall is enabled, the this will happen when you publish on Server1:
1. Publish button is pushed
2. Server1 will call webservice on web1.domain.com
3. Server1 will call webservice on web2.domain.com
So it needs to be able to reach itself on that domain name.
Thats what I have been told, but we don't manage the servers directly, but I will doulbe check again.
Would the umbraco.config on Server1 even get updated if Server1 couldn't call itself on web1.domain.com? The content is getting updated in the umbraco.config, it just doesn't display on Server1 under www.domain.com, until the cache is reset by touching the web.config.
Also, there are no error logs in the umbracoLog .
Hi Tim
I had a similar issue a few weeks ago.
In answer to your question "Would the umbraco.config on Server1 even get updated if Server1 couldn't call itself on web1.domain.com?" the answer is no. Make sure that the server can ping itself on that domain. Also make sure that the Network Service has write permissions to that file (and your whole site for that matter).
Check the umbracoLog table for .net exceptions. They are helpful in determining the issues. You can also install the logManager package to view errors.
No, I don't think the umbraco.config would get updated if there was no connection.
Can you verify that Server1 only has _one_ IIS site pointing to the umbraco install? So that the same IIS site handles both web1.domain.com and www.domain.com? The problem could occur if they are separate processes, so that the process running web1 would actually get it's cache updated, but the one running www would not. This is not actually isolated to a load balanced environment, but would also occur in a single server setup.
What happens if you disable the distributedCalls? Does Server1 update as expected then? On both web1 and www domains?
As mentioned above in the posts, the server has to be able to access both sites, including it's self, otherwise, it won't update the cache (as soon as one call timeouts, it's drops the whole operation)
We had the same issue, to check, log on to the server via Remote Desktop etc, load internet explorer, and try opening the page:
http://web1.domain.com/umbraco/webservices/CacheRefresher.asmx
then test
http://web2.domain.com/umbraco/webservices/CacheRefresher.asmx
Both should be accessible without authentication, if either one isn't then this is likley to be the problem, also, check if the server uses a proxy to access the internet, this could also be causing Umbraco some problems.
Server1 can see itself, as the umbraco.config file is getting udpated, and there are no errors or exceptions in the umbracoLog table. I've got a request into the server admin about how the IIS site is setup and making sure its just 1 IIS site on Server1 that handles both web1. and www. and the other various suggestions on this thread.
I will report back once I find the solution or if problems still persist.
Thanks guys for your help, its greatly appreciated!
The culpirt was web1. and www. each was given their own IIS Site on the server when moved to load-balancing. The two domains are now being handled by the same IIS Site, and everything is working as expected.
Thanks for all the help, all great info to know with distributed calls
is working on a reply...