CustomErrors模式=“Off"

我得到一个错误,每次我上传我的webapp到提供商。由于使用了customErrors模式,我所看到的是默认的“运行时错误”消息,指示我关闭customErrors以查看有关错误的更多信息。

我恼怒地织好了网。配置如下所示:

<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
但是,我得到的只是一个愚蠢的远程错误页面,上面没有任何有用的信息。 我还能做什么来关闭customErrors ?!< / p >
593470 次浏览

如果您仍然在获取该页面,则很可能在通过Web之前它就已经爆炸了。配置

确保ASP。Net拥有。Net框架文件夹、IIS元数据库等所需的权限。你有办法检查那个ASP。Net是否正确安装并在IIS中正确关联?

编辑:在格雷格的评论之后,我突然想到,我以为你发布的是你整个非常小的网络。Config,还有别的吗?如果是这样,你能张贴整个web.config吗?

尝试重新启动应用程序(创建一个app_offline.htm而不是删除它就可以了),如果你仍然得到相同的错误消息,确保你只在web中声明了customErrors一次。配置或者类似的东西。网络中的错误。配置可能会对应用程序产生一些奇怪的影响。

在你的web.config中有像æøå这样的特殊字符吗?如果是这样,请确保编码设置为utf-8。

在一个网站的目录树中,这个web应用程序设置在任何其他应用程序下面吗?检查所有的父网站。配置文件用于其他设置(如果有的话)。同时,将您的目录设置为IIS中的应用程序目录。

如果你正在使用MVC预览4,你可能会遇到这种情况,因为你正在使用HandleErrorAttribute。行为在5中改变了,因此如果关闭自定义错误,它将不处理异常。

“Off”区分大小写。

检查“O”在你的网页中是否是大写的。配置文件,我已经遭受了几次(简单,因为它听起来)

如果可以访问事件查看器,通常可以在它中找到有关错误的更多信息。您的提供者也可能通过在其机器中覆盖自定义错误来完全阻止自定义错误的显示。config,或将retail属性设置为true (http://msdn.microsoft.com/en-us/library/ms228298 (VS.80) . aspx)。

在过去的几天里,这已经把我逼疯了,无法回避,但最终还是弄明白了:

在我的机器里。我在<system.web>下有一个条目:

<deployment retail="true" />

这似乎覆盖了你在web中指定的任何其他customError设置。配置文件,因此将上述条目设置为:

<deployment retail="false" />

现在意味着我可以再次看到我需要的详细错误消息。

machine.config位于

32位

%windir%\Microsoft.NET\Framework\[version]\config\machine.config

64位

%windir%\Microsoft.NET\Framework64\[version]\config\machine.config

希望这能帮助到一些人,节省几个小时的时间。

您还可以尝试在服务器机器上的浏览器中打开该网站。我不怎么使用ASP。但我记得自定义错误的东西有一个设置,只显示完整的错误文本在服务器上,作为一种安全措施。

我尝试了这里描述的大部分方法。我用的是VWD和默认网页。配置文件包含:

    <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>

我把mode="RemoteOnly"改为mode="Off"。还是不高兴。 然后我使用IIS管理器,属性,ASP。Net选项卡,编辑配置,然后选择CustomeErrors选项卡。仍然显示RemoteOnly。我把它改为关闭,最后我可以看到详细的错误消息

当我浏览网页的时候。我看到在system.web中有两个CustomErrors节点;我刚刚注意到第二个条目(我正在更改的条目是在注释中)。所以尽量不要用记事本来检查网页。远程服务器上的配置。

但是,如果你使用IIS编辑配置的东西,它会抱怨web.config中的错误。然后你就可以排除所有关于"你的web.config中是否有XML语法错误"的答案

为了给这个问题添加更多的情况(因为这是我看到的,因为我有完全相同的问题),以下是我的答案:

在我的例子中,我从通用错误中剪切/粘贴文本,如果你想知道哪里出了问题,放

<system.web>
<customErrors mode="Off"/>
</system.web>

所以这应该已经解决了它,但当然没有!我的问题是有一个<system.web>节点(在编译和认证节点之前)和一个结束标记</system.web>下面几行。一旦我修正了这个,问题就解决了。我应该做的是复制/粘贴这一行:

<customErrors mode="Off"/>

这篇文章摘自《我反复做的蠢事》的编年史,标题为“复制粘贴走向毁灭”一章。

实际上,当我托管我的web应用程序时,我发现你在本地机器上开发的代码比托管公司提供的版本更高。如果您有管理权限,您可以更改Microsoft ASP。web主机设置下的NET版本支持

我们遇到了这个问题,这是由于IIS用户无法访问web服务器上的机器配置。

我也有这个问题,但当使用Apache和mod_mono。对于在这种情况下的其他人,您需要在更改web后重新启动Apache。配置以强制读取新版本。

我刚刚处理过类似的问题。在我的情况下,默认的网站asp.net版本是1.1,而我试图启动一个2.0的web应用程序。错误是非常微不足道的,但它不是立即清楚为什么自定义错误不会消失,运行时从来没有写到事件日志。显而易见的修正是匹配Asp中的版本。IIS的Net选项卡。

我们还遇到了这个错误,在我们的例子中,这是因为应用程序池用户没有访问web的权限。配置文件。它失去权限的原因(之前一切正常)是因为我们在rar文件中有一个站点的备份,我拖了一个备份版本的web。配置从rar进入网站。这似乎已经删除了对网络的所有权限。配置文件除了我,登录用户。

我们花了一段时间才弄清楚这一点,因为我反复检查文件夹级别的权限,但从未在文件级别检查过。

对于Sharepoint 2010应用程序,你还应该编辑C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config并定义<customErrors mode="Off" />

我也遇到过同样的问题,原因是IIS运行的是ASP。NET 1.1,站点需要。NET 2.0。

这个错误消息没有起到任何作用,只是让我偏离了轨道好几个小时。

我也遇到了同样的问题,但我用不同的方式找到了解决方法。

-

我所做的是,为IIS管理器中的应用程序池打开高级设置

在这里,我将启用32位应用程序设置为真正的

我在这里找到了一个解决这个问题的答案:https://stackoverflow.com/a/18938991/550975

只要把这个添加到你的web.config:

<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
<configuration>

确保你添加了 就在system.web

之后

我把它放在节点的末尾,但没有工作。

还要确保你在编辑网页。配置而不是网站。配置,正如我所做的。

如果您正在进行配置转换,您可能还需要从相关web中删除以下行。配置文件。

<compilation xdt:Transform="RemoveAttributes(debug)" />

在这里尝试了所有的答案后,发现我的Application_Error方法具有以下内容:

Server.ClearError();
Response.Redirect("/Home/Error");

删除这些线和设置解决了这个问题。(客户端仍然被重定向到错误页面customErrors="On")。

我的问题是,我有这个定义在我的web.config

<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<remove statusCode="500" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/NotFound" />
<error statusCode="500" responseMode="ExecuteURL" path="/Error/Internal" />
</httpErrors>

我也遇到过同样的问题,我查看了事件查看器应用程序日志,其中清楚地提到了发生这种情况的异常。在我的情况下,例外如下…

异常信息:

Exception type: HttpException
Exception message: The target principal name is incorrect.  Cannot generate SSPI context.
at System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app)
at System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers)
at System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context)
at System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context)
at System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)


The target principal name is incorrect.  Cannot generate SSPI context.

我刚刚在应用程序池中更新了我的密码,它为我工作。

也有可能在某些情况下。配置格式不正确。在这种情况下,你必须一行一行地检查它才能工作。通常情况下,重写规则是罪魁祸首。

这真的很奇怪。我得到这个错误,重新启动我的服务器后,它消失了。

对我来说,这是网络上的一个错误。在system.web上面配置。

文件blah不存在,所以它会抛出一个错误。因为它还没有进入系统。Web部分,但它正在使用服务器的默认设置CUstomErrors (On)

它可能不是IIS!

我浏览了这一页上所有的答案,还有其他几个。它们没有一个解决了我们的问题,但它们是值得检查的好东西,而且会引起问题。所以先检查一下。如果您使用的是PHP,那么请检查PHP设置。

什么为我修复它是编辑我们的php.ini文件并指定:

display_errors: On

我还设置了:

display_startup_errors: On

只是为了更好的衡量。

这解决了问题,而我们真正的问题是在开发阶段迁移时遗漏了一个逗号。

我意识到这个页面链接到asp.net,我们也在使用,这不是一个asp.net问题,但当你搜索这些错误时,这个页面出现了,并有一些很好的信息来修复最常见的问题;只是不是我们的具体问题。配置更改确实解决了这个问题,然后我们就可以专注于asp.net文件了!

以上这些方法都不适合我。我的案子是

我在我的web。config中有这个

<log4net debug="true">
要么删除所有这些,要么在应用程序文件夹\logs中读取错误日志 如. .C:\Users\YourName\source\repos\ YourProjectFolder \日志< / p >