我正在尝试部署ASP.NET应用程序。我已经将该站点部署到了IIS,但是当使用浏览器访问它时,它向我显示了这一点:
服务器错误
500内部服务器错误。
您正在寻找的资源有问题,无法显示。
摆弄了web.config之后,我得到了:
由于发生内部服务器错误,因此无法显示该页面。
如何查看此服务器错误背后的实际问题?
我正在尝试部署ASP.NET应用程序。我已经将该站点部署到了IIS,但是当使用浏览器访问它时,它向我显示了这一点:
服务器错误
500内部服务器错误。
您正在寻找的资源有问题,无法显示。
摆弄了web.config之后,我得到了:
由于发生内部服务器错误,因此无法显示该页面。
如何查看此服务器错误背后的实际问题?
Answers:
首先,您需要启用并查看 Web消息的详细错误,因为这是一条常规消息,没有提供出于安全原因实际发生的情况的信息。
对于详细的错误,您可以在此处找到真正的问题。
此外,如果可以在服务器上运行浏览器,则可以获取有关错误的详细信息,因为服务器会识别出您是本地用户并向您显示该错误。或者,如果您可以阅读日志使用事件查看器服务器,那么您还将看到错误的详细信息。
<configuration>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
</configuration>
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true"/>
</system.web>
</configuration>
注意:您可以避免Debug = true。您只需要关闭自定义错误一段时间,然后获取详细的错误页面。
参考:在Go Daddy的帮助文章中启用Windows自定义错误消息传递。
此外,这也可以帮助您:如何启用详细的错误消息(来自IIS)。
run the browser on the server
为我工作..谢谢你的兄弟
我正在为这个问题拔头发。确保以下条目在根web.config
文件中已为我修复:
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
请记住,如果它们已经存在,则必须将其添加到现有XML元素中。您不能只在文件末尾添加内容,因为您不能有任何元素的多个副本。
对我而言,web.config中的以下代码是罪魁祸首。当我删除它时,该网站运行良好。
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
</staticContent>
当在godaddy.ocm共享主机上部署ASP.NET MVC 3.0应用程序时,我终于解决了此“ 500内部服务器”错误。
DLL文件的版本和文件中提到的版本存在某种差异 web.config
。
我尝试了各种论坛中提到的所有选项。没有任何帮助,尽管每个人都提出了相同的解决方案,但是在我的情况下它不起作用。终于敲了两天我的头。我决定删除所有DLL文件引用,并从项目中删除web.cofig(创建本地副本),然后让应用程序抛出错误,然后将DLL文件一个接一个地添加到local = true。
添加所有DLL文件之后,我创建了一个新的ASP.NET MVC应用程序并将新应用程序的web.config复制到我的实际应用程序中。因此,我的实际应用程序现在有了一个新的web.config,然后从保存的web.config本地副本中复制了连接字符串和其他引用。
我只是编译了该应用程序,并将其发布到本地文件夹,然后将发布的文件夹通过FTP传输到goDaddy。
它奏效了,终于我的问题解决了。
就我而言,我在web.config
文件中输入了错误。应用程序密钥以某种方式放置在<appSettings>标记下。但是我不知道为什么它不显示配置错误。错误500太笼统,无法调查问题。
服务器错误500-内部服务器错误。您正在寻找的资源有问题,无法显示。哥达迪 托管-网络-经济-Windows Plesk
就我而言,我替换此代码:
<configuration>
<system.webServer>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
</system.webServer>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
</configuration>
然后将框架3.5更改为框架4。它显示了我的详细错误。我删除以下代码:
<httpModules></httpModules>
它解决了我的问题。
对于IIS 8,除了更改customErrors = Off以显示错误内容外,还有其他步骤需要执行。
<system.web>
<customErrors mode="Off" />
</system.web>
<system.webServer>
<httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>
Raul在此链接中回答了问题关闭Raul的IIS8自定义错误
您的web.config文件可能错误或缺少某些标记。我使用.NET 4 的正确配置标签解决了我的问题。
<system.web>
<compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
<add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<namespaces>
<clear/>
<add namespace="System"/>
<add namespace="System.Collections"/>
<add namespace="System.Collections.Specialized"/>
<add namespace="System.Configuration"/>
<add namespace="System.Text"/>
<add namespace="System.Text.RegularExpressions"/>
<add namespace="System.Web"/>
<add namespace="System.Web.Caching"/>
<add namespace="System.Web.SessionState"/>
<add namespace="System.Web.Security"/>
<add namespace="System.Web.Profile"/>
<add namespace="System.Web.UI"/>
<add namespace="System.Web.UI.WebControls"/>
<add namespace="System.Web.UI.WebControls.WebParts"/>
<add namespace="System.Web.UI.HtmlControls"/>
</namespaces>
</pages>
<authentication mode="None"/>
</system.web>
我意识到服务器中文件和文件夹的权限也很重要。我从linux操作系统上载了文件,通常权限仅限于读写。因此,上传后,权限仍然与本地计算机中的权限相同。
我遇到了同样的错误,只是更改了我上载的文件夹的权限,错误消失了。
希望它能帮助某人。
500内部错误
Windows托管错误
Godaddy托管问题
我曾经遇到过同样的问题,但是现在我的问题已经解决。始终在此主机中使用,它可以正常工作。
我还将建议大家进行任何要在web.config文件中进行的更改。请一个接一个地做,并在实时域中对它进行测试,以便您可以找到确切的问题或主机提供商不允许使用的功能。
<?xml version="1.0"?>
<configuration>
<system.web>
<trust level="Medium"/>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
</assemblies>
</compilation>
<httpRuntime targetFramework="4.5" />
<sessionState mode="InProc" cookieless="false" timeout="90" />
<authentication mode="Forms">
<forms loginUrl="default.aspx"
defaultUrl="default.aspx"
protection="All"
cookieless="UseCookies"
slidingExpiration="false"
timeout="30"
name="aeon.corpusjuris.in" />
</authentication>
<customErrors
mode="Off"
defaultRedirect="errorpage.aspx">
<error statusCode="403" redirect="errorpage.aspx"/>
<error statusCode="404" redirect="errorpage.aspx"/>
</customErrors>
<!-- <httpModules>
<add name="HTTPCaching" type="HTTPCaching"/>
</httpModules>
-->
</system.web>
<runtime>
<performanceScenario value="HighDensityWebHosting" />
</runtime>
<system.webServer>
<!-- <modules runAllManagedModulesForAllRequests="true">
<add name="HTTPCaching" type="HTTPCaching"/>
</modules>
-->
<defaultDocument>
<files>
<clear />
<add value="default.aspx" />
</files>
</defaultDocument>
<httpErrors errorMode="Detailed" />
<asp scriptErrorSentToBrowser="true"/>
<staticContent>
<clientCache cacheControlCustom="public"
cacheControlMaxAge="60:00:00"
cacheControlMode="UseMaxAge" />
</staticContent>
</system.webServer>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="90000000">
</jsonSerialization>
</webServices>
</scripting>
</system.web.extensions>
</configuration>
如果您使用的是自定义HttpHandler(即实现IHttpModule
),请确保您正在检查对其Error
方法的调用。
您可以在本地调试期间让处理程序抛出实际值HttpExceptions
(具有有用的Message
属性),如下所示:
public void Error(object sender, EventArgs e)
{
if (!HttpContext.Current.Request.IsLocal)
return;
var ex = ((HttpApplication)sender).Server.GetLastError();
if (ex.GetType() == typeof(HttpException))
throw ex;
}
另外,请务必检查Exception's InnerException
。
确保您的帐户使用IIS7。有关更多信息,请参见Windows托管帐户上的自定义IIS设置。请按照Windows IIS 7托管帐户上的更改管道模式中的说明进行操作。选择“集成管道模式”。在“项目参考”部分中,将以下程序集的“本地复制”设置为True:
System.Web.Abstractions
System.Web.Helpers
System.Web.Routing
System.Web.Mvc
System.Web.WebPages
将以下程序集添加到您的项目,然后将“本地复制”设置为True:
Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
Publish your application.
对于那些有这种可能性的人(VPS托管而不是网络托管):
通过远程桌面连接到您的托管服务器。从远程桌面打开Web浏览器,您将看到错误的详细描述。
您无需修改web.config或向任何人公开任何详细信息。
在更改web.config
文件之前,我将检查.NET Framework
您使用的版本与您的GoDaddy
设置(您的中的ASP.Net设置Plesk panel
)是否完全相同(我的意思是4.5!= 4.5.2 )。那应该自动将您的web.config文件更改为正确的框架。
另请注意,目前(16年1月)GoDaddy
与ASP.Net 3.5
和一起使用4.5.2
。要4.5.2
与Visual Studio一起使用,必须是2012
更高版本,如果不是2015,则必须下载并安装.NET Framework 4.5.2开发人员包。
如果仍然无法正常工作,则可以,下一步应该启用详细的错误报告,以便您对其进行调试。