У меня есть клиентское приложение (плагин IE), которое выполняет вызов веб-службы. Я иногда получаю эту ошибку при запуске:
System.IO.IOException: процесс
не может получить доступ к файлу
'C: \ Users \ paul.nearney \ AppData \ Local \ Temp \ j8imytd-.dll'
потому что он используется другим
процесс. в
System.IO .__ Error.WinIOError (Int32
errorCode, String MaybeFullPath) в
System.IO.FileStream.Init (Строковый путь,
Режим FileMode, доступ к FileAccess,
Права Int32, логические права использования,
Общий доступ к FileShare, размер буфера Int32,
Опции FileOptions,
SECURITY_ATTRIBUTES secAttrs, String
msgPath, Boolean bFromProxy) в
System.IO.FileStream..ctor (String
путь, режим FileMode, FileAccess
доступ) в
Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch (CompilerParameters
options, String [] fileNames) в
Microsoft.CSharp.CSharpCodeGenerator.FromSourceBatch (CompilerParameters
параметры, String [] sources) в
Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromSourceBatch (CompilerParameters
параметры, String [] sources) в
System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromSource (CompilerParameters
параметры, String [] sources) в
System.Xml.Serialization.Compiler.Compile (Собрание
родитель, строка нс,
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, расположение строки,
Доказательства доказательства) на
System.Xml.Serialization.XmlSerializer.GetSerializersFromCache (XmlMapping []
сопоставления, тип Type) в
System.Xml.Serialization.XmlSerializer.FromMappings (XmlMapping []
сопоставления, тип Type) в
System.Web.Services.Protocols.SoapClientType..ctor (Тип
тип) в
System.Web.Services.Protocols.SoapHttpClientProtocol..ctor ()
at MyWebService..ctor (String url)
Я еще не нашел надежного репро для этого, но я предполагаю, что эта ошибка происходит, потому что иногда возникает некоторая конкуренция по поводу динамически генерируемой сборки прокси для веб-службы, возможно, из-за нескольких попыток IE создать / использовать сборку одновременно (?)
Я думаю, что смогу обойти это, заставив VS генерировать прокси для меня во время компиляции, но я должен быть на 100% уверен, что эта сборка будет использоваться во время выполнения. Я планировал протестировать решение как есть, подтвердить, что сборка сгенерирована, а затем перекомпилировать с VS, компилирующим сборку прокси, затем повторно протестировать и подтвердить, что сборка прокси не генерируется во время выполнения.
Единственная проблема в том, что я нигде не могу найти динамически сгенерированную сборку прокси ..! Я пробовал:
- % Temp%
- % SystemRoot% \ Temp
- Запуск программы просмотра журнала Fusion (без упоминания об автоматической сборке)
- Запуск ProcessMonitor (вообще нет доступа к файлу на временном dll)
У меня заканчиваются идеи!