How to remove a compiled type from the cache

M

Marvin Landman

Hi,

I have implemented a custom VirtualPathProvider that generates source
code. The source code is changing periodically but BuildManager is
caching the results.

How could I force a recompilation or invalidate the cache for my
generated code?

Thanks.

Regards,
Marvin
 
A

Allen Chen [MSFT]

Hi Marvin,
I have implemented a custom VirtualPathProvider that generates source
code. The source code is changing periodically but BuildManager is
caching the results.
How could I force a recompilation or invalidate the cache for my
generated code?

In your custom VirtualPathProvider class you can override GetCacheKey and
return something random to do so:

public override string GetCacheKey(string virtualPath)
{
return Guid.NewGuid().ToString();
}

Please have a test and let me know if it works.

Regards,
Allen Chen
Microsoft Online Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

Note: MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 2 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions. Issues of this
nature are best handled working with a dedicated Microsoft Support Engineer
by contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
A

Allen Chen [MSFT]

Hi Marvin,
I have implemented a custom VirtualPathProvider that generates source
code. The source code is changing periodically but BuildManager is
caching the results.
How could I force a recompilation or invalidate the cache for my
generated code?

Sorry, by overriding GetCacheKey and return something random we may
increase memory infinitely. Another approach you can try is to override
GetCacheDependency method:

public override System.Web.Caching.CacheDependency
GetCacheDependency(string virtualPath, System.Collections.IEnumerable
virtualPathDependencies, DateTime utcStart)
{
return new CacheDependency(@"file path"); //By changing the content
of the file you can update cached data
// You can also use SqlCacheDependency or your custom
CacheDependency to meet your needs.
}

Can you test it to see if it can solve this issue?

Regards,
Allen Chen
Microsoft Online Support

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
(e-mail address removed).

==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/en-us/subscriptions/aa948868.aspx#notifications.

Note: MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 2 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions. Issues of this
nature are best handled working with a dedicated Microsoft Support Engineer
by contacting Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/en-us/subscriptions/aa948874.aspx
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
M

Marvin Landman

Sorry, by overriding GetCacheKey and return something random we may
increase memory infinitely. Another approach you can try is to override
GetCacheDependency method:

public override System.Web.Caching.CacheDependency
GetCacheDependency(string virtualPath, System.Collections.IEnumerable
virtualPathDependencies, DateTime utcStart)
{
return new CacheDependency(@"file path"); //By changing the content
of the file you can update cached data
// You can also use SqlCacheDependency or your custom
CacheDependency to meet your needs.
}

Can you test it to see if it can solve this issue?

Thank you very much this perfectly fits my needs.

Marvin
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top