Question: How do you solve for Process Locking File Access in Asp.Net Core "IOException: The process cannot access the file because it is being used by another process"?
Login to See the Rest of the Answer
Answer: This error is very annoying, imagine you have a text or CSV File that you need the code or Algorithm to write to the file, but for some mysterious reason you see the error that says "IOException: The process cannot access the file because it is being used by another process", you search the internet and you find no credible solution. Well, read on, first step in troubleshooting this issue is to identify what process is locking the file.
There is a couple of tools to help you find out the handle for a Process locking the file. Download a program known as Process Explorer, this program will allow you to dig deeper into the Process Children to find out what is really locking the file.
- Check your code to make sure that you are not using an Async Await code unnecessary when the first time writing to the file. If this is the case, the first writer instance might have run away with access to the file in the background thread, leaving the File Access Locked for other processes.
- If you are using Asp.Net Core to write to the file and you can't access the file due to other processes using the same file, then reevaluate your code.
use the code below:
function void WriteToFile(){
using (StreamWriter fs = new StreamWriter(filePath,true)){
//Type true if you want to append text to the file
string MyValues = "text here";
fs.WriteLine(MyValues);
}
}
- Wrapping your code in a using block releases compute resources after the code executes, so it will not lock the file. Again, you will have to understand why and when you should use a using block to wrap your code in, same goes for Async and Await methods.