Asp.net 404页不工作
当用户请求一个不存在的页面时,我试图从web配置重定向404页面。 是我的网页配置 当我尝试它的重定向是不工作,我得到的IIS默认404页。我正在本地IIS Express上试用 这是我的页面列表。404页面位于根目录上Asp.net 404页不工作,asp.net,iis,http-status-code-404,Asp.net,Iis,Http Status Code 404,当用户请求一个不存在的页面时,我试图从web配置重定向404页面。 是我的网页配置 当我尝试它的重定向是不工作,我得到的IIS默认404页。我正在本地IIS Express上试用 这是我的页面列表。404页面位于根目录上 我怎样才能做到这一点?IIS不是很好。免责声明 为了让IIS意识到您知道自己在做什么并实际显示自定义404页面,页面本身必须超过一定的大小(以字节为单位,确切地说是512字节),否则IIS会假定它知道得更好并显示默认的404 尝试在404页面的底部添加注释行,使其稍微膨胀。听起
我怎样才能做到这一点?IIS不是很好。免责声明 为了让IIS意识到您知道自己在做什么并实际显示自定义404页面,页面本身必须超过一定的大小(以字节为单位,确切地说是512字节),否则IIS会假定它知道得更好并显示默认的404 尝试在404页面的底部添加注释行,使其稍微膨胀。听起来很疯狂,我知道,但它很管用
编辑:我认为512字节是最小页面大小,否则IIS会跳过它。我确信m$的人认为这是一个好主意。关于错误状态代码404,设置重定向到~/404.aspx这应该可以做到 如果仍然不起作用,请尝试以下操作:
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="~/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
将上面的代码放入web.config中的system.webServer标记中
IIS Express使用system.webserver,因为它基于IIS7代码库:
请告诉我它是否有效
问候。看着您的web.config条目,我怀疑您的错误页面404.aspx本身是否是您看到404错误的原因。也许删除/from redirect=/404.aspx就可以了。使用一些开发工具分析您的请求
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<location path="index.aspx">
<system.webServer>
<httpRedirect enabled="true" destination="~/Admin/Login.aspx" exactDestination="true" httpResponseStatus="Found" />
<modules runAllManagedModulesForAllRequests="true"></modules>
</system.webServer>
</location>
<location path="images">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="js">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Resimler">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Script">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="Scripts">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<system.web>
<customErrors mode="On" defaultRedirect="~/Hata.aspx">
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
<pages validateRequest="false">
<controls>
<add tagPrefix="CKEditor" assembly="CKEditor.NET" namespace="CKEditor.NET"/>
</controls>
</pages>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="Admin/Login.aspx" defaultUrl="Default.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" cookieless="UseDeviceProfile" enableCrossAppRedirects="false" ticketCompatibilityMode="Framework20">
<credentials passwordFormat="SHA1">
<user name="admin" password="7dc959a7d6440baa02e0bb84b1dffeb173facf5a" />
</credentials>
</forms>
<passport redirectUrl="internal" />
</authentication>
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" executionTimeout="1200" maxRequestLength="51200" />
</system.web>
<connectionStrings>
<add name="InsaatEntities" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string="data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="ModelInsaatEntitiy" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string="data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="DB120807190835Entities" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string="data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="ModelInsaatEntities" connectionString="metadata=res://*/ModelInsaat.csdl|res://*/ModelInsaat.ssdl|res://*/ModelInsaat.msl;provider=System.Data.SqlClient;provider connection string="data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
</configuration>
这是我的web配置。当我请求nonexist.aspx时,它会正确重定向页面404.aspx,但当我请求mydomain/nonexists而不使用.aspx扩展名时,它会重定向默认的iis 404页面。我的页面大小超过512字节请在此处复制/粘贴您的web.config,而不要在图像上显示它。无法帮助查看图像,而且图像可能在几天后不存在,甚至无法帮助爬虫对此页面进行索引。若要执行此操作,您必须尝试调用asp.net页面,因此请从asp.net传递,并按照您在web.config上给他的指示进行操作。你有试过吗?或者您提供了无法从asp.net传递的页面?看看这个:我已经试过了你提供的代码,但不起作用。我在web配置中添加了这段代码,但现在网站导航到一个完全空白的页面。404页面正在工作,如果一个请求的url扩展名为.aspx。我在webconfig中添加的代码是谢谢你的回复,但没有。我已经尝试了这两个谢谢你,我会尝试并告诉结果。