У меня проблема с приложением на C#. Когда я пытаюсь вызвать ShowDialog при попытке приложения объекта SaveFileDialog. Код, вызывающий сбой, находится в блоке try catch, но, поскольку он сдерживает приложение, я не могу получить трассировку стека.Аварийная ошибка SaveFileDialog с кодом исключения 0xc0000005
try
{
SaveFileDialog sfd = new SaveFileDialog();
sfd.AddExtension = true;
sfd.RestoreDirectory = true;
string ext = Path.GetExtension(this.title);
sfd.Filter = "File type (" + ext + ")|*" + ext;
sfd.FileName = Program.NormalizeTitle(this.title);
DialogResult ds = sfd.ShowDialog(this);
}
catch (Exception ex)
{
MessageBox.Show("Exception: " + ex.StackTrace);
}
Это описание ошибки:
Faulting application name: test.exe, version: 1.0.0.1, time stamp: 0x56585459
Faulting module name: wkscli.dll, version: 6.1.7601.17514, time stamp: 0x4ce795a7
Exception code: 0xc0000005
Fault offset: 0x00001e8f
Faulting process id: 0x%9
Faulting application start time: 0x%10
Faulting application path: %11
Faulting module path: %12
Иногда разломообразования имя модуля Ntshrui.dll.
Этот код отлично работает в течение многих лет на любой другой машине. Это произошло в Windows 2008 R2 с .Net 2.0 и 4.0. В чем может быть проблема?
Если вы запустили приложение в отладчике, где именно это происходит? –
На этой строке DialogResult ds = sfd.ShowDialog (this); Но я не могу работать в отладчике, потому что он находится в клиенте env. – iz25
'0xc0000005' - нарушение прав доступа, то есть недопустимый (собственный) доступ к памяти. Может быть, что-то действительно, даже код может быть причиной, которая давно завершила выполнение, когда вы вызываете ваши вещи. Но поскольку вы получаете его во время работы с оболочкой, это может быть плохим сторонним расширением оболочки. Вы можете попробовать деактивировать расширения оболочки с помощью таких инструментов, как [this] (http://www.nirsoft.net/utils/shexview.html) и посмотреть, не исчезла ли ошибка. –