/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

发布BlogEngine.NET 3.3.5.0 出现 HTTP 错误 404.2 和404.0

2016-11-18 十有三 0 浏览:1万+ .NET技术 ASP.NET | 异常处理 | 随笔

最近无意中看到BlogEngine.NET 3.3.5.0 已经发布了,提供了新的标准模板,于是下载到一台测试服务器中看看效果,发现后台的某些菜单无法打开,会出现404.2或者404.0错误。根据不同情况,主要和IIS的ISAPI和CGI限制的设置,处理程序映射模块,URL地址错误有关系。

先说下服务器环境,系统为windows server 2008 R2,IIS版本为7.5,应用程序池.NET版本为V4.0,BlogEngine.NET使用的数据库是Ms SQLServer。服务器是一台用于测试的服务器,配置什么的比较乱,修改的乱七八糟。

这里要提及重要的一点,官方推荐的托管管道模式为集成模式,如果使用经典模式又没有设置好ISAPI 和 CGI 限制(没有添加和启用.NET 4.0的aspnet_isapi.dll),很有可能会出现404.2错误,具体错误信息如下:

错误摘要

HTTP 错误 404.2 - Not Found 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面。

详细错误信息

  • 模块 IsapiModule
  • 通知 ExecuteRequestHandler
  • 处理程序 ExtensionlessUrlHandler-ISAPI-4.0_64bit
  • 错误代码 0x800704ec
  • 请求的 URL http://localhost:80/admin/
  • 物理路径 E:\BlogEngine.NET 3.3 (web)\admin\
  • 登录方法 匿名
  • 登录用户 匿名

最可能的原因:

  • 找不到此请求的处理程序映射。可能要安装某个功能。
  • 服务器上未启用请求的资源的 Web 服务扩展。
  • 扩展的映射指向的位置不正确。
  • 扩展在浏览器或 Web 服务器中拼写错误。

可尝试的操作:

  • 请安装处理此请求的功能。例如,如果您收到 .ASPX 页的这一错误,则可能需要通过 IIS 安装程序来安装 ASP.NET。
  • 确认服务器上启用了请求的 Web 服务扩展。
    1. 打开 IIS 管理器并定位到服务器级别。
    2. 在“功能”视图中,双击“ISAPI 和 CGI 限制”以确认 Web 服务扩展被设置为“允许”。
    3. 如果该扩展不在列表中,请在“操作”窗格中单击“添加”。
    4. 在“添加 ISAPI 和 CGI 限制”对话框中,在“ISAPI”或“CGI 路径”框中键入 .dll 或 .exe 文件的路径,或者单击“浏览”导航到相应文件的位置。
    5. 在“描述”框中,键入该限制的简要说明。
    6. (可选)选中“允许执行扩展路径”以使限制可以自动运行。如果不选中此选项,则限制状态将为“不允许”,这是默认状态。您可以在以后选中此选项并单击“操作”窗格中的“允许”来允许该限制。
    7. 单击“确定”。注意: 请在确认您的 Web 服务器需要此 Web 服务扩展或 CGI 之后再将其添加到列表中。
  • 确认扩展的位置正确。
  • 确认扩展的 URL 在浏览器和 Web 服务器中均拼写正确。

错误截图如下:

HTTP 错误 404.2-Not Found截图

可尝试的操作

具体解决方法其实错误信息提供的可尝试操作都仔细说明了,我的情况就是没有在启用aspnet_isapi.dll,详细步骤如下,首先打开IIS的ISAPI 和 CGI 限制:

打开ISAPI和CGI限制

可以看到默认ASP.NET V4.0的aspnet_isapi.dll是被禁用的,开启后即可解决问题,要注意64位和32位都要开启:

开启ASP.NET V4.0

如果没有添加,要注意32和64位的aspnet_isapi.dll都要添加。

  • 64位的地址:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll
  • 32位的地址:C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

另外如果应用程序池使用的是集成模式,如果遇到404错误信息:

错误摘要

HTTP 错误 404.0 - Not Found 您要找的资源已被删除、已更名或暂时不可用。

详细错误信息

  • 模块 IIS Web Core
  • 通知 MapRequestHandler
  • 处理程序 StaticFile
  • 错误代码 0x80070002
  • 请求的 URL http://localhost:80/admin/{{SiteVars.RelativeWebRoot}}admin/
  • 物理路径 E:\BlogEngine.NET 3.3 (web)\admin\{{SiteVars.RelativeWebRoot}}admin\
  • 登录方法 BlogEngine.NET Custom Identity
  • 登录用户 admin

最可能的原因:

  • 指定的目录或文件在 Web 服务器上不存在。
  • URL 拼写错误。
  • 某个自定义筛选器或模块(如 URLScan)限制了对该文件的访问。

可尝试的操作:

  • 在 Web 服务器上创建内容。
  • 检查浏览器 URL。

具体错误截图如下:

这里依然先仔细阅读错误信息,一般根据提供的信息都可以解决问题。我遇到的是请求的URL错误,本来是要打开文章管理页面,正确的路径应该是这样的:/admin/#/content/posts,但是页面请求的URL不正确,我调整了URL后就可以正常打开了。

其实以前也常常遇到类似错误,不过当时没有做相关的笔记,还没有培养记录的好习惯,记得最头疼的一次要使用到失败请求跟踪功能去追踪具体的错误,后面问题解决了。一般来说类似的问题主要出现在应用程序池配置,ISAPI和CGI限制设置,处理程序映射,请求的URL路径以及文件,还有就是权限问题了。另外由于是测试服务器,上面还挂载了很多测试用的网站,甚至还有PHP的网站,也不排除一些配置上出现冲突。

关于失败请求跟踪功能建议看下这两篇文章:

  • Troubleshooting Failed Requests Using Tracing in IIS 7
  • Troubleshoot IIS7 errors like a pro

另外这里有个可以参考的相同问题:

  • ASP.NET MVC on IIS falls through to the static file handler

作者:十有三

出处:https://shiyousan.com/post/636150164614737349

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: C# 控制台应用程序从外部传参运行和调试
  • 下一篇: 使用WEB 平台安装BlogEngine.NET 3.2 后出现HTTP Error 500.19错误

相关文章
  • Visual Studio Community 2013 微软官方Q&A 英汉翻译对照
  • ASP.NET MVC网站发布后出现“/”应用程序中的服务器错误。
  • ASP.NET MVC中注册Global.asax的Application_Error事件处理全局异常
  • VS添加命名空间的快捷键
  • C#中如何排除/过滤/清空/删除掉字符串数组中的空字符串
  • 从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • 解决Visual Studio快捷键Ctrl+Alt+L与QQ热键冲突
  • HttpException (0x80004005): 无法连接到 SQL Server 会话数据库。
  • 冠捷 AOC2070 如何关闭显示器
  • 翻译:Changes to the language setting will not take effect until the environment is restarted.
  • Visual Studio 2017 如何打开调试的诊断工具

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号