Love what you have here. Implementing it on my own website and it works an absolute charm, it’s brilliant cannot thank you enough; can’t work out why Mixpanel doesn’t support .NET itself but ah well..

Was wondering if you knew if there anything wrong with the .IP property. I’m passing in the IP address on the request in this parameter, but Mixpanel shows my server location rather than the user’s request location

What’s interesting though is that if I send in a property with ‘ip’ as the reference, Mixpanel doesn’t display this property (if I pass in ‘IP’ = ‘XX.XX’, Mixpanel will display ‘IP = XX.XX’ however for ‘ip’ it does not). This leads me to believe they are picking up on this property and trying to process it differently, but the location services they run off this IP address still never change

Yeah, there’s a trick with this IP parameter.
The MixpanelClient has a “IsGeolocationEnabled” property (true by default) which indicates Mixpanel servers to automatically geolocate the received query (hence your server in your case..).
I believe that if you set that property to false, and specify your client’s ip, this should do it.

Thank you so much for your work!
Looks like we found an error in ‘TrySendLocalElements’ function – we looked through Fiddler and reached out that ‘time’ param is set to 0, so API declines our request. We need to fix that really quickly because we have that error in production now. We can do it by ourselves if you publish your source code to github.

Thank you for your work.
We are using Mixpanel 1.2.6 library for a desktop application running under .NET Fraemwork 4. The desktop application that we are developing is composed of 1 Winform application and 2 Windows services.
We are often seeing the following exception, that causes our application to crash, inspite of handling it in a try-catch block:
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.IsolatedStorage.IsolatedStorageException
Stack:
at System.IO.IsolatedStorage.IsolatedStorageFile.DeleteFile(System.String)
at Mixpanel.MixpanelClient+c__DisplayClass5.b__2()
at Mixpanel.Utilities.WrapSharingViolations(WrapSharingViolationsCallback, WrapSharingViolationsExceptionsCallback, Int32, Int32)
at Mixpanel.MixpanelClient.DeleteFile(System.String, System.String)
at Mixpanel.MixpanelClient.SendFile(System.String, System.String)
at Mixpanel.MixpanelClient.TrySendLocalElements()
at Mixpanel.MixpanelClient.b__0(System.Object)
at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(System.Object)
at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

I need to create an alias when an anonymous user registers to our website, but I cannot figure out how to get it to work. Method CreateAlias(string token, string originalId, string newId) needs our token, and, I think, our Id as newId, but I can’t figure out how (and why) to pass it parameter originalId. Is this the distinctId from Mixpanel? If so, how do I get it?