XmlSerializer找不到文件C:\ Windows \ Temp \ * .dll

时间:2009-05-19 15:44:26

标签: c# asp.net xml-serialization

我有一个ASP.NET 2.0 Web应用程序在一个着名的Web托管提供商的共享服务器上运行。偶尔我似乎会遇到这样的错误:

无法找到文件'C:\ WINDOWS \ TEMP \ lxnmfrsz.dll'。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IO.FileNotFoundException:找不到文件'C:\ WINDOWS \ TEMP \ lxnmfrsz.dll'。

我四处搜寻,似乎这是一个常见的问题。一种解决方案是清除临时文件夹或重新启动IIS。由于我不能在我不拥有的服务器上访问这些东西,所以这些并不是真正的选择。我已经尝试使用web.config中的指令将temp目录设置为其他目录,但它似乎仍然使用默认的临时目录。还有其他方法可以更改临时目录和/或解决此问题吗?

3 个答案:

答案 0 :(得分:7)

如果您始终序列化相同类型,则可以尝试pre-generating XmlSerializer binaries using sgen.exe。在这种情况下,XmlSerializer将不会搜索它们。

答案 1 :(得分:0)

这里唯一需要注意的是,如果涉及泛型(例如,类型的List<>),则似乎不可能使用sgen来预生成序列化程序集。

对此的解决方法是从List< MyType>使用您自己的类型,然后将其包含在预生成的程序集中。

答案 2 :(得分:-1)

我无法更改我的项目(先前的解决方案),因此我必须在客户站点中为我的客户找到解决方案,并且长时间尝试通过更改卡巴斯基反病毒来找到解决方案,最后我找到了解决方案。 在IIS中,右键单击“网站”,然后选择“添加网站...”,然后在另一个端口上启动您的网站。这就对了。完了! yohaaaaa。