在哪里可以找到动态生成的Web服务代理序列化程序集?

时间:2011-01-19 12:46:45

标签: c# serialization webservice-client

我有一个客户端应用程序(IE插件),可以调用Web服务。我偶尔会在启动时收到此错误:

  

System.IO.IOException:进程   无法访问该文件   'C:\用户\ paul.nearney \应用程序数据\本地\ TEMP \ j8imytd-的.dll'   因为它被另一个人使用   处理。在   System.IO .__ Error.WinIOError(的Int32   errorCode,String maybeFullPath)at   System.IO.FileStream.Init(String path,   FileMode模式,FileAccess访问,   Int32权限,布尔值使用权限,   FileShare共享,Int32 bufferSize,   FileOptions选项,   SECURITY_ATTRIBUTES secAttrs,String   msgPath,布尔bFromProxy)at   System.IO.FileStream..ctor(字符串   path,FileMode模式,FileAccess   访问)   Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters   options,String [] fileNames)at   Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch(CompilerParameters   options,String [] sources)at   Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch(CompilerParameters   options,String [] sources)at   System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource(CompilerParameters   options,String [] sources)at   System.Xml.Serialization.Compiler.Compile(大会   parent,String ns,   XmlSerializerCompilerParameters   xmlParameters,证据证据)
  在   System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping []   xmlMappings,Type [] types,String   defaultNamespace,证据证据,   XmlSerializerCompilerParameters   参数,装配装配,   Hashtable程序集)   System.Xml.Serialization.TempAssembly..ctor(XmlMapping []   xmlMappings,Type [] types,String   defaultNamespace,String location,   证据证据)   System.Xml.Serialization.XmlSerializer.GetSerializersFromCache(XmlMapping []   映射,类型类型)at   System.Xml.Serialization.XmlSerializer.FromMappings(XmlMapping []   映射,类型类型)at   System.Web.Services.Protocols.SoapClientType..ctor(类型   输入)   System.Web.Services.Protocols.SoapHttpClientProtocol..ctor()   在MyWebService..ctor(String url)

我还没有找到一个可靠的repro,但是假设发生了这个错误,因为偶尔会对动态生成的Web服务代理程序集产生一些争用,可能是因为IE的多个实例试图生成/同时使用组件(?)

我想我可以通过让VS在编译时为我生成代理来解决这个问题,但我需要100%确定这个程序集在运行时被使用。我打算按原样测试解决方案,确认生成程序集,然后使用VS编译代理程序集重新编译,然后重新测试,并确认代理程序集不是在运行时生成的。

唯一的问题是,我无法在任何地方找到动态生成的代理程序集..!我试过了:

  • %TEMP%
  • %SYSTEMROOT%\温度
  • 运行融合日志查看器(根本没有提及自动组装)
  • 运行ProcessMonitor(根本不对文件dll进行文件访问)

我的想法已经用完了!

0 个答案:

没有答案