Я начинаю довольно простой проект - по сути, веб-браузер с жестко запрограммированным URL для использования в публичном терминале.Иными словами, было бы просто, если бы управление веб-браузером C # не заставляло меня хотеть совершить самоубийство.
Я решил пойти с браузером Skybound Gecko, так как это кажется единственно возможнымальтернатива .. Я прошел через некоторую кривую обучения с этим проектом и обошел несколько ошибок «Starter» (т. е. не могу выполнить навигацию перед установкой дескриптора окна и ошибку, когда xpcom.dll не может быть найден), и исправилих
Теперь, когда я запускаю приложение и открываю URL-адрес в элементе управления Skybound Gecko, я получаю сообщение об ошибке в Program.cs.
Кроме того, в дополнение к этому я установил Stylizer 5, и он правильно использует проект Skybound, поэтому я предполагаю, что он содержится в моем коде или конфигурации.
Любая помощь будет принята с благодарностью.
Program.cs (где отображается ошибка)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace alphaCommKiosk
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//Error Line--------------------------------------------
Application.Run(new Form1()); // <--- ERROR OCCURS HERE.
}
}
}
Соответствующий код
//webBrowser1 is a control dragged onto the form
//Intialize
string path = "C:\\Program Files (x86)\\xulrunner\\";
Skybound.Gecko.Xpcom.Initialize(path);
webBrowser1 = new Skybound.Gecko.GeckoWebBrowser();
webBrowser1.CreateControl();
string u = "http://www.domaion.com/kiosk/index.php?account=" + mAccount + "&hash=" + mHash;
//Navigate
webBrowser1.Navigate("http://www.ibm.com/");
//execution actually progresses past this line to the end of the sub
полная ошибка и трассировка стека
System.AccessViolationException was unhandled
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=System.Windows.Forms
StackTrace:
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at alphaCommKiosk.Program.Main() in c:\code\alphaCommKiosk\alphaCommKiosk\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException: