srinivas1221 Ответов: 1

Работа с элементом управления webview в windows forms


привет

я работал над отображением url-адреса в windows forms с помощью элемента управления webview или webviewcompatible.я создал windows forms и разместил элемент управления webview, а на методе навигации элемента управления webview я размещаю url-адрес там, где я хочу перемещаться..но если я использую элемент управления webview, то сама форма windows не появляется..когда я удаляю элемент управления webview, форма загружается..в чем может быть проблема..может кто-нибудь подсказать

лог выглядит следующим образом:

'WindowsApp1.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'C:\Users\spduvvur\source\repos\WindowsApp1\WindowsApp1\bin\x86\Debug\WindowsApp1.exe'. Symbols loaded.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.VisualBasic\v4.0_10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualBasic.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.Remoting\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.Remoting.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Users\spduvvur\source\repos\WindowsApp1\WindowsApp1\bin\x86\Debug\Microsoft.Toolkit.Forms.UI.Controls.WebView.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\system32\WinMetadata\Windows.Foundation.winmd'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\system32\WinMetadata\Windows.Web.winmd'. Module was built without symbols.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Runtime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.WindowsRuntime\v4.0_4.0.0.0__b77a5c561934e089\System.Runtime.WindowsRuntime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'WindowsApp1.exe' (CLR v4.0.30319: WindowsApp1.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Runtime.InteropServices.WindowsRuntime\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Runtime.InteropServices.WindowsRuntime.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The thread 0x55c0 has exited with code 0 (0x0).
The thread 0x53f8 has exited with code 0 (0x0).
An unhandled exception of type 'System.InvalidOperationException' occurred in WindowsApp1.exe
An error occurred creating the form. See Exception.InnerException for details.  The error is: The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call may have executed. (Exception from HRESULT: 0x80010007 (RPC_E_SERVER_DIED))


The thread 0x4a1c has exited with code 0 (0x0).
The thread 0x5640 has exited with code 0 (0x0).
Unhandled Exception: System.InvalidOperationException: An error occurred creating the form. See Exception.InnerException for details.  The error is: The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call may have executed. (Exception from HRESULT: 0x80010007 (RPC_E_SERVER_DIED)) ---> System.Exception: The callee (server [not server application]) is not available and disappeared; all connections are invalid. The call may have executed. (Exception from HRESULT: 0x80010007 (RPC_E_SERVER_DIED))
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Toolkit.Win32.UI.Controls.Interop.WinRT.WebViewControlProcess.<CreateWebViewControlHostAsync>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Toolkit.Forms.UI.Controls.WebViewControlProcessExtensions.CreateWebViewControlHost(WebViewControlProcess process, IntPtr hostWindowHandle, Rectangle bounds)
   at Microsoft.Toolkit.Forms.UI.Controls.WebView.Initialize()
   at Microsoft.Toolkit.Forms.UI.Controls.WebView.System.ComponentModel.ISupportInitialize.EndInit()
   at Microsoft.Toolkit.Forms.UI.Controls.WebViewCompatibilityAdapter.Initialize()
   at Microsoft.Toolkit.Forms.UI.Controls.WebViewCompatible..ctor()
   at WindowsApp1.Form1.InitializeComponent() in C:\Users\source\repos\WindowsApp1\WindowsApp1\Form1.Designer.vb:line 26
   at WindowsApp1.Form1..ctor()
   --- End of inner exception stack trace ---
   at WindowsApp1.My.MyProject.MyForms.Create__Instance__[T](T Instance) in :line 190
   at WindowsApp1.My.MyProject.MyForms.get_Form1()
   at WindowsApp1.My.MyApplication.OnCreateMainForm() in C:\Users\source\repos\WindowsApp1\WindowsApp1\My Project\Application.Designer.vb:line 35
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
   at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
   at WindowsApp1.My.MyApplication.Main(String[] Args) in :line 81
The program '[11836] WindowsApp1.exe' has exited with code 0 (0x0).
The program '[11836] WindowsApp1.exe: Program Trace' has exited with code 0 (0x0).


Что я уже пробовал:

добавлена ссылка на Microsoft.Набор инструментов.Форм.Пользовательского интерфейса.Контроля.Библиотека WebView dll


создал кнопку на форме windows и на кнопке нажмите Вызов как webview.Навигация("www.google.com")

Richard MacCutchan

Подробные сведения о проблеме содержатся в сообщениях об исключениях.

srinivas1221

Спасибо Ричард..я также видел сообщения об исключениях, но не знаю, как действовать дальше..вот почему я вставил их сюда, чтобы кто-то мог бросить какую-то идею

Richard MacCutchan

Ошибка такова: вызываемый абонент (сервер [не серверное приложение]) недоступен и исчез; все соединения недействительны. Возможно, вызов был выполнен. (Исключение из HRESULT: 0x80010007 (RPC_E_SERVER_DIED)) ---> Система.Исключение: вызываемый абонент (сервер [не серверное приложение]) недоступен и исчез; все соединения недействительны. Возможно, вызов был выполнен. (Исключение из HRESULT: 0x80010007 (RPC_E_SERVER_DIED))

Существует проблема с вашим интернет-соединением или сервером, к которому вы пытаетесь подключиться. Это не то, что вы можете исправить в своем коде.

1 Ответов

Рейтинг:
4

Maciej Los

Пожалуйста, прочтите это: Объект WebView управления не отображается любая страница · выпуск #32 · окна-инструментарий Майкрософт.Инструментарий.В Win32 · На GitHub[^]

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


и

rjmurillo прокомментировал 17 июня 2019 года:
...
Элементы управления WebBrowser и WebView используют разные движки. Веб-браузер использует Trident (Internet Explorer), а веб-представление использует EdgeHTML (Edge). Если вы откроете свою веб-страницу в каждом из этих браузеров, вы должны быть в состоянии увидеть различия, как вы упомянули. Существует также некоторая документация о том, как отлаживать элемент управления веб-представлением с помощью инструментов F12 в документации.


Итак, проверьте, можете ли вы открывать ссылки в обоих браузерах (IE и Edge), а затем запустите VS в режиме без администратора.

Для получения более подробной информации, пожалуйста, смотрите: Элемент управления WebView для Windows Forms и WPF - Windows Community Toolkit | Microsoft Docs[^], особенно: Известные проблемы с управлением WebView для Windows Forms и WPF - Windows Community Toolkit | Microsoft Docs[^]

MSDN писал:
Браузер WebView

  • То WebBrower.ObjectForScripting собственность и WebView.AddWebAllowedObject(String, Object) не поддерживаются.
  • Вместо этого используйте WebViewControl.InvokeScriptAsync метод.
  • Вы не можете программно перемещаться с помощью нового окна.
  • Вы не можете программно перейти к определенному кадру.
  • Вы не можете программно печатать информацию из элемента управления WebView.
  • Нет никакого способа программно обновить содержимое с помощью проверки кэша. По умолчанию страницы обновляются без проверки кэша, отправляя на сервер заголовок "Pragma:no-cache".


srinivas1221

единственная ошибка, которую я делал, это запуск от имени администратора..после того, как не запускался от имени администратора webview control начал работать

Maciej Los

Я рад, что могу помочь.
Если это решит вашу проблему, пожалуйста, примите мой ответ (используйте зеленую кнопку).

srinivas1221

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

Maciej Los

Как я уже упоминал в своем ответе. Есть масса ограничений...
Извините, но я понятия не имею, какая технология используется на вашем www-сервере.

srinivas1221

спасибо за ответ..сервер находится в vb.net...альтернативно я пытаюсь с webviewcompatible control, но только форма загружается без webviewcompatible control..любое предложение по этому поводу, пожалуйста

Maciej Los

Я думаю, что вы должны следовать предложению, представленному rjmurillo:

The WebBrowser and WebView controls use different engines. Web Browser uses Trident (Internet Explorer) while Web View uses EdgeHTML (Edge). If you open your web page in each of those browsers, you should be able to see the differences as you mention. There is also some documentation about how to debug the web view control using the F12 tools in the documentation.