In an ASP.NET application, we have plenty (think, several dozen) of controller classes like this:
[RoutePrefix(\"some/thing/1.0\")]
public class SomeController :
We have found the concrete cause of why the error started appearing now:
A call to MapSignalR had been commented out, and without it, a much older, presumably erroneous setting buried somewhere in the application's configuration files became active:
A TransferRequestHandler whose path was specified as *. instead of just *.
Presumably, SignalR somehow overwrites that setting once initialized, so the issue never popped up for the past couple of years.
So, explicitly: The Web.config file contained the following line:
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
This had to be changed to
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*" verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0"/>
for the issue described here to go away.
(Unfortunately, this solution causes another problem.)