Again we run into problems, because Indicium stopped for some reason.
I am quiet sure that everything is set up as mentioned in the documentation. But I am still not sure if all settings that are needed to let Indicium running are set. It would be helpful to have a simple checklist for this in the documentation. Now is it too much fragmented.
Any ideas what else can be the reason for Indicium to stop running?
In this case the customer has a on-premise configuration, so we cannot make use of Azure to monitor te webservice. For this it would be really a good idea to have the idea
As a workaround I am now considering to make system flow that updates a sort of 'heartbeat’ date field in a little application status table and use a task + badge as in indicator when the last 'heartbeat’ is longer than 5 minutes ago.
Did you double check that "Enable preload” is enabled? This can be found when editing the application settings in the IIS Application Manager.
Or maybe Require SSL is enabled on the website?
SSL is not enabled, because the application is currently only used with the Windows GUI inside the customers network.
The only reason for having Indicium running is to keep the licence up to data and to execute System Flows in the background.
You can check if the auto start is implemented correctly by rebooting the application pool, without navigating to the indicium page. If you can then still run creation at least the auto start is implemented correctly.
correction: this is probably an end application we are talking about. You can check if the system flows still work after rebooting the application pool for the end application.
The problem still exist and I see that Indicium does not start when rebooting the application pool. I am quite sure that all settings correct.
It is very annoying. This is a TSF instance an I cannot start the creation process or sync with IAM.
Any more suggestions?
Can you validate that the modules are registered correctly in the IIS Manager?
If you open the IIS Manager and on the left hand side click the Server (not the website), then on the right view there is a "Modules” icon.
Are both ApplicationInitializationModule and the RewriteModule available?
It should be OK, or not?
Is the following rewrite rule present in the web.config file of your Indicium? And is it the first rewrite rule in the list?
This is standard rewrite rule of Indicium which we added quite a long time ago, but not everyone replaces the web.config file when deploying a new Indicium.
The Application Initialization module requires your website to accept an HTTP request on Iocalhost*. So it’s important that your website not only has an HTTP binding, but an HTTP binding for Iocalhost* specifically, like this:
* I wrote Iocalhost with a capital i instead of an L, because it is a restricted word.
Can you check these two things?
Reply from Harm:
Web.config is ok, because I always keep this untouched with every update.
I made a binding to Iocalhost (http) and unchecked also the 'Require SSL’ checkbox.
But is it not a problem to have a binding to (lokal hozt, edited from original word) for more than 1 web application on one server?
See our server setup below:
Having multiple websites with the same host name will probably cause problems. However, it looks like it’s possible to specify a host name in the Application Initialization configuration. I would like to test this out myself first though, since I haven’t tried this before. I will leave a reply when I know more.
for your info...
I checked another setup of a different customer. Here indicium runs fine. Maybe because there only one root application.
In this case no problem to have this application hierarchy, because this organization only uses the Windows GUI and Indicium only runs to keep the license up to date and host our plug-in application (smartextender).
I have tried to break Application Initialization on my own IIS server by adding websites, removing bindings and making invalid bindings, but none of these things broke Application Initialization. This surprised me a bit, but it leads me to believe that the bindings might not matter after all.
Are you certain that you’ve enabled Preload on the actual Indicium application itself and not a parent application or website? Because enabling it on a parent application or on the website doesn’t help.
Whilst checking this, can you also make sure that you’ve configured that Application Pool as Always Running?
If none of this works, can you check if the Windows Event Viewer → Windows Logs → Application contains anything relevant?
Just to add to the conversation, you can use PerfView to capture the application initialization request that IIS sends to Indicium if every IIS setting has been set correctly. Which, looking at the screenshots, they appear to be.
That way you can see if the request is actually being sent after the application pool has been (re)started and, if it is, you should be able to see if the response contains an error status code instead of the root page of Indicium.
Please check the answer to the following post if you need an example on how to use PerfView to capture IIS traffic.
I am pretty sure that everything has been set up according the documentation.
It is starting to be a bit annoying, but it will have to be solved, because if we cannot trust that the indicon is always running, then we cannot know for sure whether System Flows will be started on time etc .. But it is also necessary for TSF That indicium is running continuously, otherwise screens such as "Sync IAM" and "Creation" don't work.
It is not my ambition to become an IIS specialist, if someone wants to look at it to analyze our setup, then that is always possible. This may make a solution faster.
Your configuration looks correct. I did have another suggestion, to configure Application Initialization on the Indicium application to make the request to the domain that is set in the binding of the website, but I haven’t been able to test this myself, because I can’t reproduce the issue. The screenshot below shows the configuration.
This might work right away. At this point though, the only way to troubleshoot this issue any further is to follow Tim’s suggestion. It is not very difficult if you follow this guide:
The only information that you need to check is the request information, as displayed in the third screenshot on the linked website. The request that you see in PerfView should be a request that leads to the Indicium application. If it’s not, then the Application Initialization settings in my screenshot should allow you to configure this request somewhat.
One more thing to note, Erwin replied on your behalf a few days ago and wrote this:
However, this is why I asked the question in the first place, because keeping the web.config untouched with every update (as in keeping your current version) is exactly how you might be missing this rewrite rule. Updating the web.config is not optional, it is a part of Indicium and we make changes to it sometimes to ensure that certain things work correctly on IIS. If your web.config is very old and you haven’t updated it for dozens of versions of Indicium, then you will be missing the rewrite rule that we have added that fixes this very issue. If you have made changes to the web.config yourself as well, then these should be merged back into the web.config that we supply, with every update of Indicium.
Can you please check if the rewrite rule that I mentioned a few days ago is present in your web.config? I would recommend doing this first, before looking at my reply before this one.
See the attachment
The web.config looks correct, so we can rule that out as well.