我最近开始使用支持 AJAX 的 WCF,并且一直受到这个 .NET 缓存问题的困扰 - 无法加载文件或程序集 App__Web__hamznvwf
我的服务器每天会遇到 4 到 5 次的问题 (Win 2003) - 请参阅first post
因此,我将文件从服务器上移出,并开始在本地运行该项目(Win XP)。啊啊!这个问题再次出现——本地。重启后就发生了!您认为这是网络策略导致我的本地计算机和服务器出现此问题吗?我想我要尝试打开
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\临时 ASP.NET 文件
给大家。看看这是否有帮助?
在调用 MS 支持之前我还应该尝试其他操作吗?
如何删除临时 ASP.NET 文件中的“AppNameFolder”?我以为我可以关闭内置的调试 Web 服务器,仅此而已。有些东西阻止我删除它。
最佳答案
哇,这个有点奇怪。我做了一些研究,显然很多人多年来一直遇到这个问题。您可能正在缓存网站中定义的类型。此类类型没有程序集,因此会在运行时为它们随机生成一个程序集。下次回收 Web 服务器时,您的类型将获得一个不同的随机生成的程序集,并且您的缓存将无法反序列化,因为旧程序集不再存在。您可以尝试以下一些可能的修复方法:
- 在单独的程序集中而不是在您的网站中定义所有类型。
- 在您的本地机器上,查看在 webdev 而不是 iis 中运行站点是否具有相同的行为。
- 如果您使用的是进程外 (SQL Server) session /缓存存储,请尝试使用进程内(本地内存中) session /缓存存储
- 删除 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files 下的所有子目录(正如 Dimi 提到的,使用 Unlocker 来打破任何应用程序可能拥有的锁定)
- 如果您在部署时预编译网站,请确保在部署之前关闭您的网络服务器。 (显然,如果用户在网站的旧版本上请求页面,那么部署新版本时就会把事情搞砸。)
关于ASP.NET:WCF 和无法加载文件或程序集“App_Web_hamznvwf”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/425015/