我有一个特定的Web应用程序。我运行它的时间有一半,我收到以下错误:
"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."
我把它缩小了一点。如果我手动删除与此站点对应的Temporary Asp.Net文件,或更改dll名称然后将其更改回来,或部署新构建的dll。然后它会正常工作 - 直到我更改web.config或运行iisreset。一旦发生这种情况,除了上面提到的错误之外我什么都得不到,直到部署了新的构建,或者我再次清除了Temporary 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更改?