I have a program that's navigating to different websites using a Browser Winforms control, on it's own, but after 5-10 seconds it throws the above exception in Visual Studio and highlighting this line:
Application.Run (new MainForm ());
in Program.cs
.
Also I can see the exception location, because I turned on the CLR exceptions option.
But why is this happening. I am not doing anything with the vshost. How can I fix this?
EDIT: Call stack:
mscorlib.dll!System.IO.__Error.WinIOError(int errorCode, string maybeFullPath) + 0x4b7 bytes
mscorlib.dll!System.IO.FileStream.Init(string path, System.IO.FileMode mode, System.IO.FileAccess access = Read, int rights, bool useRights = false, System.IO.FileShare share, int bufferSize = 4096, System.IO.FileOptions options, Microsoft.Win32.Win32Native.SECURITY_ATTRIBUTES secAttrs, string msgPath = "CoolApp.vshost.exe.config", bool bFromProxy) + 0xa14 bytes
mscorlib.dll!System.IO.FileStream.FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, int bufferSize, System.IO.FileOptions options, string msgPath, bool bFromProxy) + 0x8a bytes
mscorlib.dll!System.IO.FileStream.FileStream(string path, System.IO.FileMode mode, System.IO.FileAccess access) + 0x54 bytes
System.dll!System.Uri.ParseConfigFile(string file, out System.Uri.IdnScopeFromConfig idnStateConfig, out System.Uri.IriParsingFromConfig iriParsingConfig) Line 1106 C#
System.dll!System.Uri.GetConfig(ref System.UriIdnScope idnScope = None, ref bool iriParsing = false) Line 1009 C#
System.dll!System.Uri.InitializeUriConfig() Line 907 + 0x13 bytes C#
System.dll!System.Uri.InitializeUri(System.Uri.ParsingError err = None, System.UriKind uriKind, out System.UriFormatException e = null) Line 108 + 0x5 bytes C#
System.dll!System.Uri.CreateThis(string uri, bool dontEscape, System.UriKind uriKind) Line 50 C#
System.Windows.Forms.dll!System.Windows.Forms.WebBrowser.WebBrowserEvent.BeforeNavigate2(object pDisp, ref object u开发者_开发百科rlObject, ref object flags, ref object targetFrameName, ref object postData, ref object headers, ref bool cancel = false) Line 1934 + 0x1a bytes C#
[Native to Managed Transition]
[Managed to Native Transition]
[Native to Managed Transition]
[Managed to Native Transition]
System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(int dwComponentID, int reason, int pvLoopData) Line 2106 + 0xc bytes C#
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int reason = -1, System.Windows.Forms.ApplicationContext context = {System.Windows.Forms.ApplicationContext}) Line 3377 + 0x35 bytes C#
System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int reason, System.Windows.Forms.ApplicationContext context) Line 3261 + 0xd bytes C#
> CoolApp.exe!CoolApp.Program.Main() Line 18 + 0x28 bytes C#
[Native to Managed Transition]
[Managed to Native Transition]
Microsoft.VisualStudio.HostingProcess.Utilities.dll!Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() + 0x47 bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state) + 0x9b bytes
mscorlib.dll!System.Threading.ThreadHelper.ThreadStart() + 0x4d bytes
You can find details about VSHost from here : http://blogs.msdn.com/b/dtemp/archive/2004/08/17/215764.aspx
Also I found a similar question in SO : mysterious exception "Could not find file 'D:\xxxx\bin\Debug\xxx.vshost.exe.config'."
It seems to me that you are trying to run the program compiled in debug mode on machine that have no debugger installed.
In order to fix the problem, try to check the box "Enable Just My Code (Managed only)" in Tools/Options/Debugging/General
精彩评论