每次我将webapp上传到提供商时都会出错。由于customErrors模式,我看到的只是默认的“运行时错误”消息,指示我关闭customErrors以查看有关错误的更多信息。
恼怒,我已将web.config设置为如下所示:
<?xml version="1.0"?>
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
然而,我得到的只是愚蠢的远程错误页面,没有任何有用的信息。 我还能做些什么来关闭customErrors!?
答案 0 :(得分:154)
过去几天这让我疯了,无法绕过它,但终于明白了:
在我的machine.config文件中,我在<system.web>
下有一个条目:
<deployment retail="true" />
这似乎会覆盖您在web.config文件中指定的任何其他customError设置,因此请将上述条目设置为:
<deployment retail="false" />
现在意味着我可以再次看到我需要的详细错误消息。
machine.config
位于
<强> 32位强>
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
<强> 64位强>
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
希望帮助那里的人,并节省几个小时的拉头。
答案 1 :(得分:134)
“关闭”区分大小写。
检查web.config文件中的“O”是否为大写,我已经遭受了几次(听起来很简单)
答案 2 :(得分:48)
为了在这个问题上添加更多情况(因为这是我看到的地方,因为我遇到了完全相同的问题),这是我的回答:
在我的情况下,我剪切/粘贴了一般错误中的文字,如果你想看看有什么不对,请说明
<system.web>
<customErrors mode="Off"/>
</system.web>
所以这应该已经解决了,但当然不是!我的问题是有一个&lt; system.web&gt;节点上面的几行(在编译和认证节点之前),以及一个结束标记&lt; /system.web>那下面几行。一旦我纠正了这个,好的,问题就解决了。我应该做的只是复制/粘贴这一行:
<customErrors mode="Off"/>
这是来自“我一直在做的愚蠢事情的历史”,在题为“复制并粘贴你的毁灭之路”的章节中。
答案 3 :(得分:10)
对于Sharepoint 2010应用程序,您还应编辑C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\web.config
并定义<customErrors mode="Off" />
答案 4 :(得分:7)
我在这里找到了一个实际解决这个问题的答案:https://stackoverflow.com/a/18938991/550975
只需将其添加到web.config
:
<configuration>
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
<configuration>
答案 5 :(得分:6)
如果您有权访问,通常可以在事件查看器中找到有关错误的更多信息。您的提供商也可能已经阻止了自定义错误的显示,可以通过在machine.config中覆盖它,或者将retail属性设置为true(http://msdn.microsoft.com/en-us/library/ms228298(VS.80).aspx)。
答案 6 :(得分:6)
我尝试了这里描述的大部分内容。我使用的是VWD和默认的web.config文件:
<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。我将其更改为关闭,最后我可以看到详细的错误消息。
当我检查web.config时,我看到system.web中有两个CustomErrors节点;我刚刚注意到第二个条目(我正在更改的条目是在评论中)。因此,尽量不要使用记事本来检查远程服务器上的web.config。
但是,如果你使用IIS编辑配置,它会抱怨web.config中的错误。然后,您可以排除所有答案,说“您的web.config中存在XML语法错误”
答案 7 :(得分:5)
如果你还在那个页面上,它可能会在通过Web之前爆炸.Config
确保ASP.Net具有.Net Framework文件夹,IIS元数据库等所需的权限。您是否有任何方法可以检查ASP.Net是否已正确安装并在IIS中正确关联?
编辑:在Greg发表评论后,我发现我发布的内容是你整个非常小的web.config,还有更多内容吗?如果是这样,你可以发布整个web.config吗?
答案 8 :(得分:5)
我的问题是我在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>
答案 9 :(得分:5)
我也有这个问题,但是在使用Apache和mod_mono时。对于那种情况下的其他任何人,您需要在更改web.config后重新启动Apache以强制读取新版本。
答案 10 :(得分:2)
实际上,我在托管我的网络应用程序时想到的是,您在本地计算机上开发的代码版本高于托管公司为您提供的版本。如果您具有管理员权限,则可以在Web托管设置
下更改Microsoft ASP.NET版本支持答案 11 :(得分:2)
我们遇到了这个问题,原因是IIS用户无法访问Web服务器上的计算机配置。
答案 12 :(得分:2)
我们也遇到了这个错误,在我们的例子中,这是因为应用程序池用户不再拥有web.config文件的权限。它失去了权限(以前一切都很好)的原因是因为我们在rar文件中备份了网站,并将web.config的备份版本从rar拖到了网站中。这似乎删除了web.config文件的所有权限,除了我,登录用户。
我们需要一段时间来解决这个问题,因为我反复检查了文件夹级别的权限,但从未在文件级别上检查过。
答案 13 :(得分:1)
尝试重新启动应用程序(创建app_offline.htm而不是删除它),如果仍然收到相同的错误消息,请确保您只在web.config中声明了一次customErrors,或者类似的东西。 web.config中的错误可能会对应用程序产生一些奇怪的影响。
答案 14 :(得分:1)
我有同样的问题,但以不同的方式找到了决心。
-
我做的是,我为 IIS管理器中的应用程序池打开了高级设置。
我将启用32位应用程序设置为 True 。
答案 15 :(得分:1)
我刚刚处理过类似的问题。在我的情况下,默认网站asp.net版本是1.1,而我正在尝试启动2.0网络应用程序。错误非常简单,但是并不是很清楚为什么自定义错误不会消失,而运行时从未写入事件日志。明显的解决方法是匹配IIS的Asp.Net选项卡中的版本。
答案 16 :(得分:1)
您还可以尝试在服务器计算机上的浏览器中打开网站。我没有做很多ASP.NET开发,但我记得自定义错误的东西只有在服务器上显示完整的错误文本,作为安全措施。
答案 17 :(得分:1)
如果您正在使用MVC预览版4,则可能会遇到此问题,因为您正在使用HandleErrorAttribute。行为在5中更改,因此如果您关闭自定义错误,则不会处理异常。
答案 18 :(得分:1)
此网络应用程序是否设置在网站目录树中的任何其他应用程序下方?检查任何父web.config文件以获取其他设置(如果有)。另外,将您的目录设置为IIS中的应用程序目录。
答案 19 :(得分:1)
你的web.config中有没有像æøå这样的特殊角色?如果是这样,请确保编码设置为utf-8。
答案 20 :(得分:0)
我遇到了同样的问题,原因是IIS运行的是ASP.NET 1.1,并且该站点需要.NET 2.0。
错误消息没有做任何事情,但让我偏离了几个小时。
答案 21 :(得分:0)
确保添加 就在system.web之后
我把它放在节点的末尾并且不起作用。
答案 22 :(得分:0)
另外,请确保您正在编辑web.config而不是像我一样编辑website.config。
答案 23 :(得分:0)
如果您正在进行配置转换,您可能还需要从相关的web.config文件中删除以下行。
<compilation xdt:Transform="RemoveAttributes(debug)" />
答案 24 :(得分:0)
在这里尝试了所有答案后,结果发现我的Application_Error
方法有这个:
Server.ClearError();
Response.Redirect("/Home/Error");
删除这些行并设置修复问题。 (客户端仍然被重定向到customErrors="On"
的错误页面。)
答案 25 :(得分:0)
我遇到了同样的问题,我浏览了事件查看器应用程序日志,它清楚地提到了由于发生了哪个例外。在我的情况下,例外情况如下......
异常信息:
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.
我刚刚在应用程序池中更新了密码,它对我有用。
答案 26 :(得分:0)
在某些情况下,也可能无法正确格式化web.config。在这种情况下,你必须逐行完成它才能工作。通常,重写规则是罪魁祸首。
答案 27 :(得分:0)
那真的很奇怪。我收到此错误,并在重新启动服务器后消失了。
答案 28 :(得分:0)
对我来说,这是在system.web上方的web.config中更高的错误。
文件不存在,因此此时抛出一个错误。因为它尚未到达System.Web部分,所以它正在使用CUstomErrors(On)的服务器默认设置
答案 29 :(得分:0)
可能不是IIS!
我仔细阅读了本页上的所有答案以及其他答案。他们中没有一个解决了我们的问题,但是它们是需要检查的好东西,并且会引起问题。所以先检查一下。如果仍在使用PHP,请检查PHP设置。
对我来说解决的是编辑php.ini文件并指定:
F1
我还设置:
display_errors: On
只是为了很好的测量。
这解决了问题,而我们真正的问题却是在开发人员到阶段迁移过程中遗漏的逗号。
我知道此页面已链接到我们也使用过的asp.net,这不是asp.net问题,但是当您搜索这些错误时,此页面出现,并且具有一些可修复大多数问题的好信息常见问题;而不是我们的特定问题。配置更改确实解决了问题,然后我们可以集中精力于asp.net文件!