Выполнение кода в веб-службы:.NET IO Exception "Неправильная подпись"
using (File.OpenRead(@"\\server\file.txt"))
{
// some stuff
}
Причинение IO Exception, который просто говорит "Invalid Signature"
Я не могу найти что-либо через Google об этой ошибке при использовании статических методов File.
var exists = File.Exists(@"\\server\file.txt"))
Не сгенерирует исключение, однако, что делает его казаться, что вы можете увидеть файл, но он не может открыть его для чтения.
Я действительно в недоумении за то, что «Invalid Signature» пытается сказать в этом случае.
Спасибо.
UPDATE:
Даже при использовании олицетворения, чтобы открыть читать файлы с сервера, он по-прежнему бросает исключение ввода-вывода с «недействительная подпись.»
Stack:
<StackTrace>
<StackFrame Index="6">
<FileName />
<Method>Void RenderImages(System.String, System.Nullable`1[System.Int32])</Method>
<LineNumber>0</LineNumber>
<ColumnNumber>0</ColumnNumber>
<ILOffset>88</ILOffset>
</StackFrame>
<StackFrame Index="5">
<FileName />
<Method>Void .ctor(System.String, Boolean)</Method>
<LineNumber>0</LineNumber>
<ColumnNumber>0</ColumnNumber>
<ILOffset>0</ILOffset>
</StackFrame>
<StackFrame Index="4">
<FileName />
<Method>Void .ctor(System.String, System.Text.Encoding, Boolean, Int32)</Method>
<LineNumber>0</LineNumber>
<ColumnNumber>0</ColumnNumber>
<ILOffset>7</ILOffset>
</StackFrame>
<StackFrame Index="3">
<FileName />
<Method>Void .ctor(System.String, System.Text.Encoding, Boolean, Int32, Boolean)</Method>
<LineNumber>0</LineNumber>
<ColumnNumber>0</ColumnNumber>
<ILOffset>113</ILOffset>
</StackFrame>
<StackFrame Index="2">
<FileName />
<Method>Void .ctor(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, Int32, System.IO.FileOptions, System.String, Boolean, Boolean, Boolean)</Method>
<LineNumber>0</LineNumber>
<ColumnNumber>0</ColumnNumber>
<ILOffset>35</ILOffset>
</StackFrame>
<StackFrame Index="1">
<FileName />
<Method>Void Init(System.String, System.IO.FileMode, System.IO.FileAccess, Int32, Boolean, System.IO.FileShare, Int32, System.IO.FileOptions, SECURITY_ATTRIBUTES, System.String, Boolean, Boolean, Boolean)</Method>
<LineNumber>0</LineNumber>
<ColumnNumber>0</ColumnNumber>
<ILOffset>998</ILOffset>
</StackFrame>
<StackFrame Index="0">
<FileName />
<Method>Void WinIOError(Int32, System.String)</Method>
<LineNumber>0</LineNumber>
<ColumnNumber>0</ColumnNumber>
<ILOffset>571</ILOffset>
</StackFrame>
</StackTrace>
Окружающая среда:
<Environment>
<DateTime.Now>1/23/2015 8:50:28 AM</DateTime.Now>
<MachineName>xxxxx</MachineName>
<UserDomainName>xxxxx</UserDomainName>
<UserName>xxxx</UserName>
<Executable>w3wp.exe</Executable>
<ExecutableTimestamp>0101.01.0000</ExecutableTimestamp>
<CommandLine>c:\windows\system32\inetsrv\w3wp.exe -ap "xxx.xxxxx.com" -v "v4.0" -l "webengine4.dll" -a \\.\pipe\iisipm45ad21f3-41a8-4e9a-a27c-fd0c679b337a -h "C:\inetpub\temp\apppools\xxxx.xxxx.com\xxxx.xxx.com.config" -w "" -m 0 -t 20 -ta 0</CommandLine>
<OSVersion>Microsoft Windows NT 6.3.9600.0</OSVersion>
<WorkingSet>168112128</WorkingSet>
<EnvironmentVersion>4.0.30319.34003</EnvironmentVersion>
using (File.Open(@"\\server\file.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite)
и
File.WriteAllText(destinationFile, sb.ToString());
where destinationFile is \\server\sharename\generatedFileName.txt
Также выведите исключение для целей разъяснения.
Вы уверены, что это текстовый файл? можете ли вы открыть его, скажем, в блокноте, и увидеть отчетливо содержание? – Tigran
Есть ли заполнение InnerException? –
Удалите весь текст пути и введите его вручную (я бы удалял его до '@' до окончания '' ', чтобы убедиться, что он начинает работать? У меня были проблемы в прошлом, копировать/вставлять скопированные непечатаемые символы в путь к файлу, который 'File.Open' не может обрабатывать. Я не помню, была ли ошибка, которую я получил, была« Invalid Signature ». –