我编写了一个通过WebBrowser表单加载页面的应用程序。加载页面是通过webbrowser.navigate在webbrowser_documentCompleted函数中完成的。这效果很好。但是,如果应用程序没有网络,它将显示"无法显示此页面" - 页面。是否可以改用自定义页面显示,如果是的话 - 如何?谢谢您的帮助。
您可以在应用程序开始时执行网络检查,如果失败,则可以将其重定向到您的错误页面?
app.config中的其他方式您可以使用以下代码:
<system.web>
<customErrors>
<error statusCode="404" redirect="error.htm"/>
</customErrors>
每当您的应用程序接收到HTTP错误代码404时,它将重定向到错误。
yo可以创建一个自定义错误页面,并从您的web.config
中显示多个错误状态。
自定义错误页面:
当在ASP.NET应用程序中出现未经治疗的异常时,显示了三种类型的错误页面之一:
- 例外细节死亡错误页面的黄色屏幕,
运行时错误死亡错误页面或
自定义错误页面
默认情况下,所有类型的错误都会导致显示相同的自定义错误页面。但是,您可以使用<customErrors>
部分中的<error>
儿童元素为特定的HTTP status code
指定另一个自定义错误页面。例如,要在未找到页面错误的情况下显示不同的错误页面,该页面具有HTTP
状态代码404
,请更新<customErrors>
部分以包括以下标记:
<customErrors mode="RemoteOnly" defaultRedirect="~/ErrorPages/Oops.aspx">
<error statusCode="404" redirect="~/ErrorPages/404.aspx" />
</customErrors>
做到这一点的一种方法是处理WebBrowser的导航方法,然后尝试访问WebBrowser对象的文档对象的域属性。如果它无法访问该域(例如服务器下降或不存在时),则会丢弃错误。然后,您只需要捕获错误,然后将自己的HTML直接写入WebBrowser的文档对象:
Private Sub WebBrowser1_Navigated(sender As Object, e As System.Windows.Forms.WebBrowserNavigatedEventArgs) Handles WebBrowser1.Navigated
Dim doc As HtmlDocument = WebBrowser1.Document
Try
Dim s As String = doc.Domain
Catch ex As Exception
WebBrowser1.Document.Write("<html><body><br/><h1>The site you are trying to reach is offline or hasn't been set up yet. Please contact your system administrator.</h1></body></html>")
End Try
End Sub