ASP.NET:WCF 和无法加载文件或程序集“App_Web_hamznvwf”

标签 asp.net .net wcf caching dynamic-compilation

我最近开始使用支持 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/

相关文章:

c# - 如何使用 soap UI 传递流

c# - 在 gridview 列中查找值

mysql - phpmyadmin 在安装 ASP 中不起作用 :NET CORE in apache centos 7

asp.net - 格式化 DevExpress ASPxGridView 中的列?

c# - 无法将 lambda 表达式转换为类型 'string',因为它不是委托(delegate)类型

c# - 微软 Lync 2010 软件开发工具包。视频显示在屏幕的左上角

c# - 在 C# 中缓冲字节数据

asp.net - Orchard : Custom Registration fields

c# - 在 WCF 中,为什么我们说传输是最不安全的选项?

c# - 如何在已安装的服务上授予对 HTTP 命名空间的权限?