internal ParseErrorFormatter(HttpParseException e, string fileName, string sourceCode, int line, string message) : base(fileName, sourceCode, line) { _excep = e; _message = message; }
internal ParseErrorFormatter(HttpParseException e, string virtualPath, string sourceCode, int line, string message) : base(virtualPath, null, sourceCode, line) { this._adaptiveMiscContent = new StringCollection(); this._excep = e; this._message = HttpUtility.FormatPlainTextAsHtml(message); this._adaptiveMiscContent.Add(this._message); }
public void Constructor2_Deny_Unrestricted () { HttpParseException e = new HttpParseException ("message", new Exception ()); Assert.IsNull (e.FileName, "FileName"); Assert.AreEqual (0, e.Line, "Line"); Assert.IsNull (e.VirtualPath, "VirtualPath"); Assert.AreEqual (1, e.ParserErrors.Count, "ParserErrors"); }
internal ParseErrorFormatter(HttpParseException e, string virtualPath, string sourceCode, int line, string message) : base(virtualPath, null /*physicalPath*/, sourceCode, line) { _excep = e; _message = HttpUtility.FormatPlainTextAsHtml(message); _adaptiveMiscContent.Add(_message); }
public void FixtureSetUp () { hpe = new HttpParseException (); }
private static void LogHttpParseException(HttpParseException ex, HttpContext context, RouteData routeData, BaseController controller) { int httpCode = ex.GetHttpCode(); string message = string.Empty; message = "Http Parse Exception " + httpCode + " \n-Message: " + ex.Message + " \n-Source: " + ex.Source + " \n-VirtualPath: " + ex.VirtualPath + " \n-FileName: " + ex.FileName + " (" + ex.Line + ")" + " \n-Parser Error Count: " + ex.ParserErrors.Count; int counter = 0; foreach (ParserError item in ex.ParserErrors) { counter++; string errorText = item.VirtualPath + " (" + item.Line + ") " + item.ErrorText; message += " \n-Parser Error [" + counter + "]: " + errorText; } message += " \n-Parser Errors: " + ex.ParserErrors.ToString() + " \n-WebEventCode: " + ex.WebEventCode + " \n-ErrorCode: " + ex.ErrorCode + " \n-TargetSiteName: " + ex.TargetSite.Name + " \n-StackTrace: " + ex.StackTrace + " Html Message: " + ex.GetHtmlErrorMessage(); LogException(message, ex, Models.SystemEventLevel.Error, context, routeData, controller); }
public static bool HandleHttpParseException(HttpParseException ex, bool clearError, HttpContext context, RouteData routeData, BaseController controller) { string rawUrl = context.Request.RawUrl; string url = context.Request.Url.ToString(); if (Settings.AppLogSystemEventsToDb || Settings.AppLogSystemEventsToFile) { LogHttpParseException(ex, context, routeData, controller); } if (Settings.AppUseFriendlyErrorPages) { ShowErrorPage(ErrorPage.Error_HttpError, ex.GetHttpCode(), ex, clearError, context, controller); return true; } return false; }
public void LoadControl_WithControlThrowingHttpParseException_LoadsErrorControlWithExceptionHavingControlPath() { // arrange var containerControl = new Mock<IContainerControl>(); var exception = new HttpParseException(); var errorControl = new Error(); containerControl.Setup(tc => tc.LoadControl("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx")).Throws(exception); containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns(errorControl); var skin = new SkinConfig { TemplateFolder = "OfMyChinnyChinChin" }; var skinControlLoader = new SkinControlLoader(containerControl.Object, skin); // act var control = skinControlLoader.LoadControl("ViewPost") as IErrorControl; // assert Assert.AreEqual("~/Skins/OfMyChinnyChinChin/Controls/ViewPost.ascx", control.Exception.ControlPath); }
public void LoadControl_WithControlThrowingHttpParseException_LoadsErrorControlWithExceptionProperty() { // arrange var containerControl = new Mock<IContainerControl>(); var exception = new HttpParseException(); var userControl = new Mock<UserControl>(); userControl.Stub(c => c.ID); var errorControl = userControl.As<IErrorControl>(); userControl.Object.ID = "Foo.Bar"; errorControl.Stub(c => c.Exception); containerControl.Setup(tc => tc.LoadControl("~/Skins/VsShirts/Controls/ViewPost.ascx")).Throws(exception); containerControl.Setup(tc => tc.LoadControl("~/Skins/_System/Controls/Error.ascx")).Returns((UserControl)errorControl.Object); var skin = new SkinConfig { TemplateFolder = "VsShirts" }; var skinControlLoader = new SkinControlLoader(containerControl.Object, skin); // act var control = skinControlLoader.LoadControl("ViewPost") as IErrorControl; // assert Assert.AreEqual(exception, control.Exception.InnerException); }
internal void Process() { this.AddBuildProviders(true); if (this._buildProviders.Count != 0) { BuildManager.ReportDirectoryCompilationProgress(this._vdir.VirtualPathObject); this.GetBuildResultDependencies(); this.ProcessDependencies(); ArrayList[] listArray = this._nonDependentBuckets; for (int i = 0; i < listArray.Length; i++) { ICollection buildProviders = listArray[i]; if (!this.CompileNonDependentBuildProviders(buildProviders)) { break; } } if ((this._parserErrors != null) && (this._parserErrors.Count > 0)) { HttpParseException exception = new HttpParseException(this._firstException.Message, this._firstException, this._firstException.VirtualPath, this._firstException.Source, this._firstException.Line); for (int j = 1; j < this._parserErrors.Count; j++) { exception.ParserErrors.Add(this._parserErrors[j]); } throw exception; } } }
private bool CompileNonDependentBuildProviders(ICollection buildProviders) { IDictionary dictionary = new Hashtable(); ArrayList list = null; AssemblyBuilder builder = null; bool flag = false; foreach (System.Web.Compilation.BuildProvider provider in buildProviders) { ICollection is2; if (this.IsBuildProviderSkipable(provider)) { continue; } if (!BuildManager.ThrowOnFirstParseError) { InternalBuildProvider provider2 = provider as InternalBuildProvider; if (provider2 != null) { provider2.ThrowOnFirstParseError = false; } } CompilerType compilerTypeFromBuildProvider = null; try { compilerTypeFromBuildProvider = System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(provider); } catch (HttpParseException exception) { if (!this._ignoreProvidersWithErrors) { flag = true; if (this._firstException == null) { this._firstException = exception; } if (this._parserErrors == null) { this._parserErrors = new ParserErrorCollection(); } this._parserErrors.AddRange(exception.ParserErrors); } continue; } catch { if (!this._ignoreProvidersWithErrors) { throw; } continue; } AssemblyBuilder builder2 = builder; if (compilerTypeFromBuildProvider == null) { if (builder != null) { goto Label_00E6; } if (list == null) { list = new ArrayList(); } list.Add(provider); continue; } builder2 = (AssemblyBuilder) dictionary[compilerTypeFromBuildProvider]; Label_00E6: is2 = provider.GetGeneratedTypeNames(); if (((builder2 == null) || builder2.IsBatchFull) || builder2.ContainsTypeNames(is2)) { if (builder2 != null) { this.CompileAssemblyBuilder(builder2); } AssemblyBuilder builder3 = compilerTypeFromBuildProvider.CreateAssemblyBuilder(this._compConfig, this._referencedAssemblies); dictionary[compilerTypeFromBuildProvider] = builder3; if ((builder == null) || (builder == builder2)) { builder = builder3; } builder2 = builder3; } builder2.AddTypeNames(is2); builder2.AddBuildProvider(provider); } if (flag) { return false; } if (list != null) { bool flag2 = builder == null; foreach (System.Web.Compilation.BuildProvider provider3 in list) { ICollection generatedTypeNames = provider3.GetGeneratedTypeNames(); if (((builder == null) || builder.IsBatchFull) || builder.ContainsTypeNames(generatedTypeNames)) { if (builder != null) { this.CompileAssemblyBuilder(builder); } builder = CompilerType.GetDefaultAssemblyBuilder(this._compConfig, this._referencedAssemblies, this._vdir.VirtualPathObject, null); flag2 = true; } builder.AddTypeNames(generatedTypeNames); builder.AddBuildProvider(provider3); } if (flag2) { this.CompileAssemblyBuilder(builder); } } foreach (AssemblyBuilder builder4 in dictionary.Values) { this.CompileAssemblyBuilder(builder4); } return true; }