Question: I have a list of unique values, lets say for example city names (Japan, Paris) and it could be modified by the application later to be (Paris, New York ). 
what i need is a away to save them and then retrive them. How could this be done and how could i insure if its thread/process safe? (`Set` `Serialization`, `JSON` file, Preferences ?)

Answer: 
First, when posting such a question to stackoverflow, **post as many details as possible**. These people on this site are brilliant and can fix your problem in a snap if you provide them enough information. 

1. Confirm that you have deployed ALL dll, aspx, ascx, .vb, .cs, exe, image, and config files.
2. Confirm that you have deployed ALL folders
3. Confirm that your web.config has a valid connection string
4. Confirm that your entire folder tree has read/write permissions for network service account. (this can be backed down later)
5. Confirm that your entire folder tree has read permissions on the IUsr account
6. Confirm that your application pool (IIS Manager) has the same .NET Framework as your application was compiled in. It's probably .NET Framework 4.0, but might be 3.5 or 2.0
7. Confirm that the web server has port 80 and 443 open in its firewall
8. Confirm that asp.net is installed on the web server

	* Navigation to `C:\Windows\Microsoft.NET\Framework\v4.0.30319` in the command line and run `aspnet_regiis.exe -i` if you need to reinstall asp.net 4.0. Sometimes this fixes problems.
9. Confirm that the web server serves up an html file. Add a file called test.htm to the root folder, and only include "Hello, I am test.htm" as its contents. Attempt to visit this in a browser. If it does not load, check permissions again.
10. Confirm that you have a dll on the server for every custom reference that you have added to your project, and confirm that the dlls are at an accessible path to the deployed web application (like, sitting in the bin folder)
I have the same problem as the person that post the question. I my development machine it runs smoothly. Deploying it in my own development machine opens the website bu gives me different w3wp.exe codes when opening a specific page inside my website.
I t seems it is a memory problem. I have tried different approaches but nothing seems to work.
The page that I am trying to open in has different linq queries.
I answer as much as I could from your questions.
Confirm that you have deployed ALL dll, aspx, ascx, .vb, .cs, exe, image, and config files.
Yes

1. Confirm that you have deployed ALL folders
Yes
2. Confirm that your web.config has a valid connection string
Yes
3. Confirm that your entire folder tree has read/write permissions for network service account. (this can be backed down later)
4. Confirm that your entire folder tree has read permissions on the IUsr account
5. Confirm that your application pool (IIS Manager) has the same .NET Framework as your application was compiled in. It's probably .NET Framework 4.0, but might be 3.5 or 2.0
Yes 4.0
6. Confirm that the web server has port 80 and 443 open in its firewall
7. Confirm that asp.net is installed on the web server
• Navigation to C:\Windows\Microsoft.NET\Framework\v4.0.30319 in the command line and run aspnet\_regiis.exe -i if you need to reinstall asp.net 4.0. Sometimes this fixes problems.
8. Confirm that the web server serves up an html file. Add a file called test.htm to the root folder, and only include "Hello, I am test.htm" as its contents. Attempt to visit this in a browser. If it does not load, check permissions again.
9. Confirm that you have a dll on the server for every custom reference that you have added to your project, and confirm that the dlls are at an accessible path to the deployed web application (like, sitting in the bin folder)