- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 asp.net mvc 应用程序,正在尝试使用 IISExpress 解决自定义错误。
在 Casini 中工作正常:
<customErrors mode="On" defaultRedirect="/error">
<error statusCode="404" redirect="/error/notfound"/>
</customErrors>
<httpErrors errorMode="Detailed"/>
<httpErrors errorMode="Detailed" defaultResponseMode="Redirect">
<clear/>
<error statusCode="404" path="/error/notfound"/>
</httpErrors>
最佳答案
这部分是由于我对自定义错误的实际调用方式的误解以及(恕我直言),asp.net mvc 中的错误处理有点困惑。
第一个问题是,在我的许多操作方法中,我正在检查对象是否存在,例如博客文章,如果博客文章为空,则返回 HttpNotFoundResult。我假设这会显示我为 404 错误设置的自定义错误页面。
然而,这种情况并非如此。返回 HttpNotFoundResult 只是将响应的状态代码设置为 404。其余的由 IIS 处理,显示 IIS 404 错误页面或由您的浏览器(如果它有自己的自定义错误页面)处理。
这里的一种解决方案是返回一个 HttpException 将 使用您的自定义错误页面,因为该请求是由 asp.net 处理的。
我选择创建一个新的 ActionResult,它允许我指定一个 View 以及一个 http 状态代码。我更喜欢这个而不是抛出异常。
下一个问题是默认情况下,一个新的 MVC 项目定义了一个贪婪的路由。如果您向 /foo/bar
提出请求默认的 MvcHandler 将寻找一个名为 Foo
的 Controller .当它找不到它时,它将返回 404。
我已经删除了默认路由并且没有贪婪的路由。这意味着与我的任何路由都不匹配的 url 将不会被 asp.net 处理并且只会回退到 IIS。
这里的解决方案是在我的路由配置底部创建一个通配符路由来匹配 全部 其他请求并将它们转发到自定义 PageNotFound 操作,该操作将状态代码设置为 404 并显示我的自定义 View 。
有些事情值得指出。
httpErrors errorMode="Detailed"
用于在 IIS/IISExpress 中显示的自定义错误页面。然而,其余的可以单独留下。 defaultRedirect
customErrors
中的路径部分对 500 错误没有影响。这是因为全局HandleErrorAttribute
处理所有 500 个错误,只查找一个名为“错误”的 View 来显示。这意味着如果您的自定义错误页面实际上是一个 Controller 操作,则不会调用它。即使您明确指定了 500 错误页面,上述情况也是正确的。 关于iis-7.5 - 自定义错误不适用于 IISExpress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6308186/
以下是我的工作环境中使用的技术: -Node JS 版本 8.10.0 win x64 -Visual Studio 2015 社区更新 3 -iisnode v0.22.1 x64 -IIS Exp
我有一个网站在 IIS Express 上运行良好,直到我想添加第二个网站并让它们都使用相同的端口号运行。现在我不知道如何走正确的道路。当我在运行 iIS Express 后浏览该网站时,它提示一个错
IISExpress 将日志和配置数据写入预先确定的位置,开箱即用。 该目录是存储在用户文档目录中的“IISExpress”目录。 该目录下存储有以下文件夹文件。 配置 日志 TraceLogFile
我正在编写一个利用安全声明的自定义 .Net 应用程序,因为我们正在跨越许多边界 - Web、API、批处理等。在开发过程中,有时我会在通过 Chrome 登录时在系统中创建一些东西,然后我会通过 E
当我尝试从 VS(2015 或 2017)启动我的 ASP.NET 应用程序时,它只是崩溃,输出窗口中没有错误。 The program '[8464] iisexpress.exe' has exi
我需要以特定身份运行 IISExpress。看完这篇文章后how to run iisexpress app pool under a different identity我在\Documents\I
我正在尝试配置一个简单的网站以要求 IISExpress 上的客户端证书。 我的配置是根据这个存档jasonrshaver.com邮政。 ... ... 它
有没有办法回收iisexpress应用程序池? 我打开 cmd 并转到“C:\Program Files\IIS Express” 然后我运行“appcmd apppool/?”那里的命令列表缺少“回
我遇到一个问题,当我尝试将我的调试器附加到 IIS Express 时,它失败并显示“无法附加到进程。灾难性故障”。然后它会终止我的 IIS Express session 。我不知道从哪里开始调试这
我有一个 asp.net mvc 应用程序,正在尝试使用 IISExpress 解决自定义错误。 在 Casini 中工作正常: 当我之前将 mvc 站点部署到 IIS (7.5) 时,我所
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我最近注意到 IISExpress 和我的网站文件夹被添加到我的 Windows 7 机器上的我的文档文件夹中。我最近安装了 VS2012,所以我猜这是罪魁祸首,但如果可能的话,我在网上找不到任何解释
我正在尝试学习 mvc。我在此站点 (asp.net) 中使用 Pluralsight 培训视频。 在本视频中,我们创建了一个名为 OdeToFoodDb 的 DBContext 类: public
我正在尝试从 Android 模拟器(特别是 Genymotion)通过 Visual Studio 连接到在 IISExpress 上运行的 ASP.NET WebApi 服务。我能够设置我的 II
我第一次使用带有 IISExpress 的新 Visual Studio 2013(以前在 VS2010 上使用 ASP.net 开发服务器)。我在尝试调试我的项目时遇到了问题。 这是我在 Chrom
我有一个包含多个项目的解决方案。即使我将 Web 项目的启动选项设置为: 不要打开页面。等待来自外部应用程序的请求。 使用自定义网络服务器。基本 URL:http://localhost。 启动项目:
我正在尝试运行我的 Web 应用程序,但出现此错误 Unable to attach to application 'iisexpress.exe' (PID 708) using ''. The
我正在使用 IISExpress8 运行 Windows Server 2008 R2 (x64),并且导航到 c:\Program Files (x86)\IIS Express>iisexpres
我正在尝试使用本地网络上的其他一些计算机/设备来测试在本地 IISExpress 实例中运行的网站。我运行的是 Win7 Pro。 当我第一次尝试从本地网段上的另一台计算机浏览到我的计算机时,收到 4
我有一个从 Azure 开发测试实验室环境创建的虚拟机。我CYOD这个虚拟机,所以我有onedrive业务和公司的所有安全限制。 我刚刚测试了 IISExpress 文件夹及其项目缺乏权限的所有解决方
我是一名优秀的程序员,十分优秀!