Asp.net 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页面的底部添加注释行,使其稍微膨胀。听起

当用户请求一个不存在的页面时,我试图从web配置重定向404页面。 是我的网页配置

当我尝试它的重定向是不工作,我得到的IIS默认404页。我正在本地IIS Express上试用

这是我的页面列表。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=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;multipleactiveresultsets=True;application name=EntityFramework&quot;" 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=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;multipleactiveresultsets=True;application name=EntityFramework&quot;" 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=&quot;data source=mssql03.natro.com;initial catalog=DB120807190835;persist security info=True;user id=USR120807190835;password=PSS!H3Z7F1%;MultipleActiveResultSets=True;App=EntityFramework&quot;" 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中添加的代码是谢谢你的回复,但没有。我已经尝试了这两个谢谢你,我会尝试并告诉结果。