Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net Web Services (http://www.velocityreviews.com/forums/f64-asp-net-web-services.html)
-   -   File locked by another process when cached with CacheDependency (http://www.velocityreviews.com/forums/t781849-file-locked-by-another-process-when-cached-with-cachedependency.html)

Keith 10-01-2003 09:29 PM

File locked by another process when cached with CacheDependency
 
Hi.

I've developed an ASP.NET web service that uses an xml file to store
configuration settings. I'm creating a cache dependency based on the xml
file and its schema, like this...

XmlDocument doc = new XmlDocument();
{ ........ }
string [] filePaths = { filePath, schemaPath };
CacheDependency dep = new CacheDependency(filePaths);
Context.Cache.Insert(key, doc, dep);

The problem is the files are being locked by another process. I'm assuming
they're locked by the aspnet_wp process, because if I run iisreset, the
files are free until the next time the web service is called.

I'd like to be able to update the files without having to reset the server
each time. I'd expect the cached item would then be cleared from cache, so I
can reload it with the newer version of the xml document.

The documentation for HttpContext.Cache says this is possible, but it's not
working.

Thanks in advance.

-|<eith.



MSFT 10-02-2003 08:06 AM

RE: File locked by another process when cached with CacheDependency
 
Hi Keith,

Each application domain has its own Cache object. If your XML file was
cached by an app, you must remove it from cache so that it can be reused,
like:

HttpContext.Cache.remove("key1")

Luke
Microsoft Online Support

Get Secure! www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)


Keith 10-02-2003 06:27 PM

Re: File locked by another process when cached with CacheDependency
 
I found the answer to my problem. I wasn't closing my XmlValidatingReader
object. Duh! Thanks for your help Luke.

-|<eith

------------------------------------------
string filePath = Server.MapPath("ParamConfig.xml");
string schemaPath = Server.MapPath("ParamConfig.xsd");
// open, validate and cache config file.
XmlTextReader xtr = new XmlTextReader(filePath);
XmlValidatingReader xvr = new XmlValidatingReader(xtr);
XmlTextReader sxtr = new XmlTextReader(schemaPath);
xvr.Schemas.Add(null, sxtr);
doc = new XmlDocument();
doc.Load(xvr);

// THIS LINE SOLVED THE PROBLEM
xvr.Close();

string [] filePaths = { filePath, schemaPath };
CacheDependency dep = new CacheDependency(filePaths);
Context.Cache.Insert(key, doc, dep);
------------------------------------------




All times are GMT. The time now is 10:07 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.