我有这个非常奇怪的问题:
当我访问我网站上不存在的网址时,它只会显示一个白页。 Application_Error事件永远不会运行,并且用户不会转移到我们使用的404页面。
我需要捕获Application_Error事件,进行一些日志记录以及一些重定向。
我无法访问IIS,因为我在共享的webhotel上运行我的网站。但是我的所有其他网站都可以正常使用。
这是我的web.config:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<pages>
<controls>
<add src="~/UC/Filters.ascx" tagName="Filters" tagPrefix="uc2"/>
</controls>
</pages>
<httpRuntime maxRequestLength="1048576" requestValidationMode="2.0"/>
<customErrors mode="Off" defaultRedirect="ErrorPage.aspx">
<error statusCode="404" redirect="404-Error.aspx"/>
</customErrors>
<sessionState timeout="5000"/>
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<validation validateIntegratedModeConfiguration="false"/>
<handlers>
<add name="AjaxToolkit" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</handlers>
<rewrite>
<rules>
<rule name="Redirect domain.com to www" patternSyntax="Wildcard" stopProcessing="true">
<match url="*"/>
<conditions>
<add input="{HTTP_HOST}" pattern="domain.com"/>
</conditions>
<action type="Redirect" url="http://www.domain.com/{R:0}"/>
</rule>
<!--To always remove trailing slash from the URL-->
<rule name="Remove trailing slash" stopProcessing="true">
<match url="(.*)/$"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
有什么想法吗?谢谢:-D
答案 0 :(得分:0)
将自定义错误设置为:
<customErrors mode="RemoteOnly" defaultRedirect="ErrorPage.aspx">
<error statusCode="404" redirect="404-Error.aspx"/>
</customErrors>