I’ve just noticed that the self-documenting feature of my server isn’t working. I used to be able to simply browse to the server address and port of the HTTP server channel and it would come up with the main page with the option to view the full documentation and a list of dispatchers etc.
Now it just comes up with “Invalid Page” and I have no idea what’s changed or broken. What should I check for this functionality to work correctly?
Hmm, there are a few warnings about invalid identifiers which are reserved words in Delphi or C++ builder but I don’t think these are causing any problems, especially as one is within the RO code itself.
I then have a load of “Duplicate Name” errors which appear to be regarding sub-group names as have a group called “Events” under each of my top-level group names. That wouldn’t cause a problem though would it?
EDIT: I just changed all the group names to remove the errors, just leaving a couple of the identifier warnings and it still doesn’t work I’m afraid.
The goods news is that it’s fixed the documentation page issue, thanks for that.
The bad news is I have another slight issue. I was using the Stream_ReadStringWithLength function in a handler of mine. This was declared in uROBinaryHelpers.pas and simply called Stream_ReadUTF8StringWithLength in uROBinMessage.pas.
It appears the main function in uROBinMessage.pas has been renamed to Stream_ReadStringAsUTF8WithLength which isn’t a problem per se, but I can’t get at this directly and the helper function I was calling previously has been removed from uROBinaryHelpers.pas for some reason.
Is there any way round this other than changing your code to add it back into the helpers file?
Stream_ReadStringAsUTF8WithLength was moved to implementation section of uROBinMessage.pas because it was used only here.
as a workaround, you can just copy it’s content to your code.
Ok I now have an utterly bizarre scenario whereby it only seems to work when running on my computer.
If my server is run on my computer then the documentation works, whether accessed locally or remotely.
If the same executable is run on another machine, it produces the Invalid Page error, whether run locally or remotely.
What on earth?! Has it somehow become bound to my computer name? I’m at a loss here.
Could this be a locale problem, of the RODL is in ASCII format and not UTF8, and the system locale differs between you computer and the server? Just guessing…