Как устранить ошибку: Отображение модального диалогового окна или формы, когда приложение не запущено в режиме UserInteractive, не является допустимой операцией - PullRequest
13 голосов
/ 19 января 2012

Я работаю над проектом.В моей Системе, когда я запускаю проект, он работает хорошо, но после загрузки его на мой домен, когда я проверяю, он отображает ошибку, например:

"Отображение модального диалогового окна или формы, когда приложение невыполнение в режиме UserInteractive недопустимо. Укажите стиль ServiceNotification или DefaultDesktopOnly для отображения уведомления из приложения-службы. "

Описание : во время выполнения текущего возникло необработанное исключениевеб-запрос.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении : System.InvalidOperationException: Отображение модального диалогового окна или формы, когда приложение не работает в режиме UserInteractive, не является допустимой операцией.Укажите стиль ServiceNotification или DefaultDesktopOnly для отображения уведомления от приложения-службы.

В чем причина этого и как я могу его устранить?

Пожалуйста, помогите мне ...

Спасибо.

Ответы [ 5 ]

10 голосов
/ 27 ноября 2012

Вы на 100% можете сделать это на стороне сервера ...

     Protected Sub Button3_Click(sender As Object, e As System.EventArgs)
    MesgBox("Test")
End Sub

Private Sub MesgBox(ByVal sMessage As String)
    Dim msg As String
    msg = "<script language='javascript'>"
    msg += "alert('" & sMessage & "');"
    msg += "<" & "/script>"
    Response.Write(msg)
End Sub

Вот на самом деле целый ряд способов сделать это http://www.sislands.com/coin70/week1/dialogbox.htm

9 голосов
/ 02 мая 2013

Эту ошибку можно устранить, добавив MessageBoxOptions.ServiceNotification.

MessageBox.Show(msg, "Print Error", System.Windows.Forms.MessageBoxButtons.YesNo, 
   System.Windows.Forms.MessageBoxIcon.Error,     
   System.Windows.Forms.MessageBoxDefaultButton.Button1, 
   System.Windows.Forms.MessageBoxOptions.ServiceNotification); 

Но диалоговое окно не будет отображаться, если ваше веб-приложение установлено на IIS или на сервере. Поскольку в IIS или на сервере оно размещается в рабочем процессе, у которого нет рабочего стола.

9 голосов
/ 19 января 2012

Невозможно отобразить диалоговое окно ON SERVER из приложения ASP.NET, конечно, технически вы можете это сделать, но это не имеет смысла, так как ваш пользователь использует браузер и не может видеть сообщения поднят на сервере. Вы должны понимать, как работают веб-сайты, код на стороне сервера (ASP.NET в вашем случае) создает html, javascript и т. Д. На сервере, а затем браузер загружает этот контент и отображает его для пользователя, чтобы представить окно модального сообщения Пользователь, вы должны использовать Javascript, например, функцию оповещения.

Вот пример для asp.net:

http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-ASPNET-code-behind.aspx

0 голосов
/ 17 декабря 2018

Это также встречается, если вы запускаете приложение для запланированной задачи в неинтерактивном режиме.

Как только вы показываете диалог, появляется сообщение об ошибке:

Отображение модального диалогового окна или формы, когда приложение не работает в режиме UserInteractive, не является допустимой операцией. Укажите стиль ServiceNotification или DefaultDesktopOnly для отображения уведомления от приложения-службы.

Вы можете увидеть MessageBox, вызывающий проблему в трассировке стека:

at System.Windows.Forms.MessageBox.ShowCore(IWin32Window owner, String text, String caption, MessageBoxButtons buttons, MessageBoxIcon icon,  MessageBoxDefaultButton defaultButton, MessageBoxOptions options, Boolean showHelp)  

Решение

Если вы запускаете приложение по запланированной задаче, отправьте электронное письмо вместо отображения диалога.

0 голосов
/ 20 февраля 2014

Для Vb.Net Framework 4.0 U может использовать:

Alert("your message here", Boolean)

Здесь логическое значение может быть истинным или ложным.True Если вы хотите закрыть окно сразу после, False Если вы хотите оставить окно открытым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...