I developed a web app on windows 7 in C# visual studio 2015 and using iisexpress. When launching esent will initialize correctly with a supplied directory and i can create a persistent dictionary and read/write keys. Once I move my app to a windows server 2008r2 box, I get an error during initialization: Microsoft.Isam.Esent.Interop.EsentInvalidParameterException: Invalid API parameter.
Any idea on why I'm getting this error? I've tried a few things like checking to make sure my service account has permissions, modifying the app pool to allow 32bit or not, and a various other changes to no effect.
Comments: Found the fix. The default settings are sending the waypointlatency parameter with value of 1 to the setinstanceparams method which is a windows 7 only setting. I removed the setting from the persistentdictionarydefaultconfig and that fixed everything. I had to make my own build of esent to do this. Not sure if there's a better method to do this when calling the persistent dictionary. It seemed like there was some feature detection going on for different system builds, but I didn't dig too deep into it.
Any idea on why I'm getting this error? I've tried a few things like checking to make sure my service account has permissions, modifying the app pool to allow 32bit or not, and a various other changes to no effect.
Comments: Found the fix. The default settings are sending the waypointlatency parameter with value of 1 to the setinstanceparams method which is a windows 7 only setting. I removed the setting from the persistentdictionarydefaultconfig and that fixed everything. I had to make my own build of esent to do this. Not sure if there's a better method to do this when calling the persistent dictionary. It seemed like there was some feature detection going on for different system builds, but I didn't dig too deep into it.