I solved this issue in a different way. I couldn't figure out a common location so I tried to eliminate the need itself for a common location.
I used MemoryStream
object and stored my XML file in memory instead of server physically and sent it from there. That way no need to save to local path. More example code is as below.
StringBuilder builder = new StringBuilder() ;
XmlWriterSettings settings = new XmlWriterSettings();
settings.Encoding = Encoding.UTF8;
settings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(builder, settings))
{
writer.WriteProcessingInstruction("xml", "version=\"1.0\" encoding=\"utf-8\"");
writer.WriteStartElement("mainElem");
writer.WriteStartElement("elem");
writer.WriteElementString("var1", "data");
writer.WriteElementString("var2", "data");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();
}
byte[] a = System.Text.Encoding.UTF8.GetBytes(builder.ToString());
MemoryStream stream = new MemoryStream(a);
return stream;
Posting it here in case someone else come across similar situation.