We have a win 2012/IIS 8.5 web farm up and running using a shared config. All was working great on the servers and we would create a site on one server and it would go across them all. We run into an issue with the servers and had to change a number of them to local configurations before reverting them back to the shared config.
The problem we had was with us not being able to start sites so was a bit of a major issue. At the time we suspected it was related to the way we were using DFS to share the configuration across servers and possibly IIS was accessing the config files whilst they were being touched by DFS. We tried a couple of things and ended up reverting the servers back to a previous IIS config (due to corruption issues and not being able to start sites) and had to setup a new DFS share.
We have an issue when we create a new site on the farm, the site is started on web01 but stuck on starting on the remaining servers. When we try and click on start on one of the sites we get the error
there was an error performing this operation. Details: the object identifier does not represent a valid object. (exception from HRESULT: 0x800710D8)
When i edit the binding of any site on the server (the one with the sites stuck on starting) and apply the changes I am then able to start all the problematic sites.
Anyone any ideas as to what the cause could be and how to resolve it?
Thanks
Answer
Disable shared config on all servers - this will result in them being temporarily separated and each storing their own config - this is OK.
Export the iisConfigurationKey and iisWasKey from web01 and import on all other servers - these encryption keys need to be synchronized across the farm for shared config to work. If you built the other servers by cloning web01, then no need to do this.
Export:
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -px "iisConfigurationKey" C:\iisConfKey.xml -pri
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -px "iisWasKey" C:\iisWasKey.xml -pri
Import:
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -pi "iisConfigurationKey" C:\iisconfkey.xml -exp
C:\windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe -pi "iisWasKey" C:\iisWasKey.xml -exp
Setup a network share and that all servers can use to access the shared config as detailed here.
On the first server (web01), export the configuration - place it in this network location (make not of the encryption key you use when you export).
On the first server (web01), switch to shared configuration mode again - defining the same network location - input the encryption key if prompted.
Now do the same on all other web servers, switch to shared configuration mode again - defining the same network location - input the encryption key if prompted.
Reboot all of them.
Now manage config via web01 and it should appear correctly on the other servers.
No comments:
Post a Comment