我的问题是.NET框架生成的支持XmlSerialization的临时文件.
这是提示我提出问题的背景.
我部署的软件部署在4个环境中,所有这些都是Windows 2003服务器.
所有4个环境中的.net运行时都是相同的服务包.C:\ windows\temp目录的所有环境中的用户权限都已分配,以允许这些计算机上的NETWORK SERVICE和ASPNET用户完全访问.
软件组件包括以下内容(组件已作为预先存在的设计的一部分分离):
每个Web和Web服务应用程序都已在IIS中分配了不同的应用程序池.
Web服务2由上面列出的其他组件使用.Web应用程序1,Windows Service 3都具有相同的.net1.1 dll客户端到Web服务2. Web应用程序4具有.net2.0版本的Web服务2客户端.
包含Web服务绑定的客户端DLL在所有应用程序中具有相同的"命名空间".定义Web服务2内的Web服务绑定的服务器DLL也具有相同的命名空间.
.NET 2.0 Web应用程序已配置为在生成文件时使用不同的临时目录路径,方法是在web.config文件中指定它:
<xmlSerializer tempFilesLocation ="c:\newTemp"/>
在一个环境中,我间歇性地看到以下错误:
无法生成临时类(result = 1).错误CS1567:生成Win32资源时出错:进程无法访问该文件,因为它正被另一个进程使用.
Stack = at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, CompilerParameters parameters, Evidence evidence)
at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, CompilerParameters parameters, Assembly assembly, Hashtable assemblies)
at System.Xml.Serialization.TempAssembly..ctor(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, String location, Evidence …Run Code Online (Sandbox Code Playgroud)