Проблемы при использовании из сервиса.

Обсуждение вопросов импорта поддерживаемых форматов
Post Reply
shade
Posts: 3
Joined: 03 Nov 2009, 12:51

Проблемы при использовании из сервиса.

Post by shade » 05 Nov 2009, 16:15

Добрый день!
При сохранении получил исключение вида:

System.InvalidOperationException: Showing a modal dialog box or form when the application is not running in UserInteractive mode is not a valid operation. Specify the ServiceNotification or DefaultDesktopOnly style to display a notification from a service application.
at System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon, MessageBoxDefaultButton defaultButton, MessageBoxOptions options, Boolean showHelp)
at System.Windows.Forms.MessageBox.Show(String text, String caption)
at CADImport.CADImage.Draw(Graphics e, RectangleF Rect, Region visibleRegion)
at CADImport.CADImage.Draw(Graphics e, RectangleF Rect)
at CADImport.CADImage.(DRect , PixelFormat )
at CADImport.CADImage.SaveToFile(String FileName, ImageFormat ImgFormat, DRect curRect)

Виноват был, конечно, сам - два потока пытались сохранить в один файл, но естественно не ожидал, что кто-то будет пытаться вывести что-то на экран.

С уважением, Михаил.

support
Posts: 3271
Joined: 30 Mar 2005, 11:36
Contact:

Re: Проблемы при использовании из сервиса.

Post by support » 17 Nov 2009, 13:56

Здравствуйте Михаил.
Вы получили это исключение, т.к. операционная система попыталась отобразить сообщение, вызванное попыткой записи из двух разных потоков в один файл, в неинтерактивном пользовательском режиме. Для того чтобы избежать аналогичных исключений, в MessageBox.Show() определите перечисление MessageBoxOptions как ServiceNotification или DefaultDesktopOnly.

С уважением, Александр.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support

shade
Posts: 3
Joined: 03 Nov 2009, 12:51

Re: Проблемы при использовании из сервиса.

Post by shade » 17 Nov 2009, 20:00

> Для того чтобы избежать аналогичных исключений, в MessageBox.Show() определите перечисление MessageBoxOptions как ServiceNotification или DefaultDesktopOnly.

Я бы, конечно, с удовльствием, но MessageBox.Show вызываю не я. Судя по stack-trace это делается из метода CadImage.Draw. Возможно я что-то недопонимаю.

support
Posts: 3271
Joined: 30 Mar 2005, 11:36
Contact:

Re: Проблемы при использовании из сервиса.

Post by support » 20 Nov 2009, 12:29

Вы правы, MessageBox.Show вызывается из нашей сборки. Возможно в будущих версиях мы учтём появление подобных ситуаций. Постарайтесь избегать использования сборки подобным образом.

С уважением, Александр.
Technical Support E-mail: support@cadsofttools.com
Chat support on Skype: cadsofttools.support

Post Reply