我有一个特定的网络应用程序。运行它的一半时间,我收到以下错误:
"ErrorCode": "FileNotFoundException",
"Message": "Could not load file or assembly 'MyNotReallyMissingAssembly, Version=1.0.0.0, Culture=en-us, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified."
我已经缩小了一点。如果我手动删除与该站点对应的临时 Asp.Net 文件,或者更改 dll 名称然后将其改回,或者部署新构建的 dll。然后它会正常工作 - 直到我更改 web.config 或运行 iisreset。一旦发生这种情况,在部署新版本之前,除了上面提到的错误,我什么也得不到,或者我再次清除临时 Asp.Net 文件。
如果有帮助,我会提到这是一个 ServiceStack Web 服务。我怀疑这并不重要。
我知道更改 dll、更改 web.config、回收应用程序池以及可能导致网站重新编译的其他一些事情,但是,我不知道的是,更改 dll 似乎做的事情与简单的完全不同更改 web.config 或强制应用程序池回收。
我环顾四周寻找这个问题,但除了这个之外找不到任何东西:http: //support.microsoft.com/default.aspx ?scid=kb;EN-US;823196 。因此,我创建了一个新的 .net 4.0 应用程序池并将其标识更改为 NetworkService,并确保 NetworkService 用户具有对 C:\Windows\Temp 的完全访问权限。(注意:服务器是 Windows 2008 服务器)。问题仍然存在。
问:我做错了什么?我可以做些什么来确保我的应用程序将继续通过应用程序池重新启动/回收事件和 web.config 更改工作?