Well, I was unable to run this successfully under IIS, but it works under Abyss web server.
I found a problem anyways. (I decompile your project, just to find the error, hope it is ok). The environment somehow remembers the dataGroups collection, and when multiple Process() are called, the dataGroups is filled again with the same offsets until it reaches the MaximumDataSize and throws exception. I added dataGroups.Clear() method to the end of FSUIPCConnection.Close(), while calling the Close method anytime the work with FSUIPC is done and it's now working perfectly.
Would you somehow clear the collection when Close is called or add the posibility to clear the stuff any other way and update in NuGet?
Thanks, Jindřich