This document was written for Aptify Web though most of the steps apply to e-Business 6 as well.
Basic Troubleshooting Steps
If your Aptify Web website won't open, here's some primary troubleshooting steps to check. We're using my local for examples, https://desktop-fpmlf8n/Aptify/ you'll want to replace desktop-fpml8n with your computer or server name. (It's best to test using Chrome Incognito to rule out any caching issues)
Make sure your URL starts with HTTPS, not HTTP.
Check the Chrome console
Press F12 to open Chrome's console, and open Aptify Web. It'll display all the items that Aptify Web is loading on the right hand column, including any errors. If it hasn't displayed an error, you might need to just wait longer for it to load all items. If it has displayed an error (in red), click on the link and you'll see more error information.
In some cases, the Chrome Console won't explicitly post an error, like as shown in Checklist for basic Aptify Web/ebusiness 6 troubleshooting. You may want to Hit F12, open the Chrome console, and run: Aptify.framework.exceptionManager.getExceptions() to see more errors.
You can only do this if Aptify Web has loaded, however, if you are erroring out on the check connection page, this obviously won't work.
Check the CheckConnection endpoint
Try navigating to the CheckConnection endpoint. It's at servername/AptifyServicesAPI/services/Checkconnection. In the previous examples, it would be at: https://desktop-fpmlf8n/AptifyServicesAPI/services/CheckConnection This endpoint is the most basic endpoint of Aptify Services or Aptify Web. It just confirms whether basic services are able to run, when you go to that URL, it should return the timestamp:
If that loads, you know your services are running, so it's probably not a database connectivity issue, it's not an app pool user issue, or a basic permissions issue.
If it doesn't load, it should give you an error that will point you in the right direction. Like in the above example, Aptify Services cannot find the right version of the specified .dll. It could be one of the following:
- That .dll might be missing from the AptifyServicesAPI/bin folder.
- If it's there, I might have the wrong version of the .dll either in my config file or in the bin folder.
- My app pool user might not have the right permissions to access the bin folder
Either way, it should give you some good information to look into. If I google my error "Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=220.127.116.11" the first few results make it pretty clear- I'm missing the full MVC4 framework and the related .dlls. Maybe you didn't install it, or it didn't install properly. Once I install it, that error is no longer a problem.
If you receive that error- you're missing a reference in your config file. (I've highlighted the important part) In this case, the reference is fine, we're just missing the System.Web.MVC.dll file from the bin folder. Put a copy of it in there (from an MVC install, or for other .dlls, from the Aptify 5.0 folder) and the issue is resolved.
That endpoint will tell you a number of errors, for example, it might tell you that the app pool user has an invalid client access license, or cannot connect to the database, like in the above image. If the login failed, you might want to ensure your app pool is working properly. (see further below)
If the app pool is running fine, make sure that user can login to the database- the easiest way is to login to Windows as that user and attempt to log into Aptify as a trusted user.
If there are any licensing or modules issues, that'll immediately show up as the problem- you'll get an error that the user does not have an active client license.. In this case, that was the issue- as you can see, my user was not activated. If the user is active but the licensing isn't correct, logging in will also demonstrate that.
Ensure your App Pool is working properly and has the Windows right permissions
There are two main areas to check for your app pool users- first, are they assigned right with the correct password? And second, are your sites assigned to the right app pool user with the appropriate permissions.
In the IIS Management application, click on Application Pools. Make sure your Aptify_HTML5Web and Aptify_SOAWeb app pools exist, have the right users specified, and are running. (these should be created by the Aptify Web installer) If they're not running, try starting them- if they immediately stop, you should find some helpful information logged to the web server's event viewer.
Your Aptify_HTML5Web account should point to LocalSystem, and your Aptify_SOAWeb account should point to the app pool user you used when installing Aptify Web. If for whatever reason your app pool user is wrong, select your app pool, click "Advanced Settings" either by right-clicking the app pool or by selecting it in the Actions tab on the far right. Under identity, click the 3-dot box and you'll have the ability to change it to a built-in account, or a custom account.
When entering in the username/password, Windows will verify that the user name is valid and the password is correct. If your app pool isn't running, it could be because the password is expired or has changed. This is where you can resolve the issue:
Check the app pool user has the right permissions- click on your ApiServicesAPI site underneath Default Web Site. On the far right area under the Actions tab, click on Basic Settings.
If you select "Connect as", both Aptify and AptifyServicesAPI should say it's connecting as the application user. If it's set to a specific user, your app pool might be fine, but IIS isn't even using that account. That user might not have an Aptify account, or they might not have the appropriate permissions to the IIS website folder.
For example, if I open AptifyServicesAPI's basic settings, my app pool user is still set to the correct AptifyWebUser, but I see below that I'm not actually connecting as that user.
If I select Test Connection, everything is green because that account can authorize with Windows and has access to the folder, but doesn't have the overall windows permissions it needs, nor does it have an Aptify license/account. In that scenario, if I test my CheckConnection endpoint, it returns with this:
Swap the App Pool user for SA to check for Aptify Permissions errors
One other easy way to verify if the app pool user has the appropriate (Aptify) permissions is to temporarily change the app pool user from your app pool user to SA. All you have to do is open the web.config file under the AptifyServicsAPI folder,
Under line 166 or so, change the trusted to false, and change your SQLLogin to SA and input the SA password under the next key. Save the file, and try the CheckConnection endpoint again. If it now works, there's an Aptify permissions error with your app pool user or the Aptify SOA App Pool user group.
Make sure to swap it back when you're done so your services are not being run by SA.
Check the Event Viewer on the Web Server
In one case, the CheckConnection gave me the above error. That didn't immediately point me to the right place. When I checked the Event Viewer on the web server, however, I saw an error that said:
There are no configured controllers for this service application (HTML5 Web). If controllers are configured, make sure the user running SOA in IIS can access the entities and subtypes under the Web Services application."
That indicated immediately that my app pool user did not have the right permissions. Sure enough, while it was in the AptifySOAAppPool user group, somehow that group did not have security permissions to any entity or subtype within the Web Services application. Fixing that resolved the issue.
If you're having problems locating the error in the event viewer, you may want to clear the contents of the event log, reset IIS, and then refresh the event log. Aptify Services posts detailed notes to the event log as its starting up, take note of any warning or errors there.