我得到一个错误,每次我上传我的webapp到提供商。由于使用了customErrors模式,我所看到的是默认的“运行时错误”消息,指示我关闭customErrors以查看有关错误的更多信息。
我恼怒地织好了网。配置如下所示:
<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
然而,我所得到的只是一个愚蠢的远程错误页面,上面没有任何有用的信息。
我还能做什么来关闭customErrors ?!
在过去的几天里,这已经把我逼疯了,无法回避,但最终还是弄明白了:
在我的机器里。我在<system.web>下有一个条目:
<deployment retail="true" />
这似乎覆盖了你在web中指定的任何其他customError设置。配置文件,因此将上述条目设置为:
<deployment retail="false" />
现在意味着我可以再次看到我需要的详细错误消息。
这台机器。配置位于
32位
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64位
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
我尝试了这里描述的大部分方法。我用的是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。我将其更改为Off,最后我可以看到详细的错误消息。
当我浏览网页的时候。我看到在system.web中有两个CustomErrors节点;我刚刚注意到第二个条目(我正在更改的条目是在注释中)。所以尽量不要用记事本来检查网页。远程服务器上的配置。
但是,如果你使用IIS编辑配置的东西,它会抱怨web.config中的错误。然后你就可以排除所有关于"你的web.config中是否有XML语法错误"的答案
为了给这个问题添加更多的情况(因为这是我看到的,因为我有完全相同的问题),以下是我的答案:
在我的例子中,我从通用错误中剪切/粘贴文本,如果你想知道哪里出了问题,放
<system.web>
<customErrors mode="Off"/>
</system.web>
所以这应该已经解决了它,但当然没有!我的问题是有一个<系统。Web >节点上面几行(在编译和身份验证节点之前),以及结束标记</system。下面几行是Web >。一旦我修正了这个,问题就解决了。我应该做的是复制/粘贴这一行:
<customErrors mode="Off"/>
这篇文章摘自《我反复做的蠢事》的编年史,标题为“复制粘贴走向毁灭”一章。
我也遇到过同样的问题,我查看了事件查看器应用程序日志,其中清楚地提到了发生这种情况的异常。在我的情况下,例外如下…
异常信息:
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.
我刚刚在应用程序池中更新了我的密码,它为我工作。
它可能不是IIS!
我浏览了这一页上所有的答案,还有其他几个。它们没有一个解决了我们的问题,但它们是值得检查的好东西,而且会引起问题。所以先检查一下。如果您使用的是PHP,那么请检查PHP设置。
什么为我修复它是编辑我们的php.ini文件并指定:
display_errors: On
我还设置了:
display_startup_errors: On
只是为了更好的衡量。
这解决了问题,而我们真正的问题是在开发阶段迁移时遗漏了一个逗号。
我意识到这个页面链接到asp.net,我们也在使用,这不是一个asp.net问题,但当你搜索这些错误时,这个页面出现了,并有一些很好的信息来修复最常见的问题;只是不是我们的具体问题。配置更改确实解决了这个问题,然后我们就可以专注于asp.net文件了!