我正在尝试部署一个ASP。网络应用程序。我已经将网站部署到IIS,但当用浏览器访问它时,它显示给我这个:

服务器错误 500 -内部服务器错误。 您正在查找的资源有问题,无法显示。

在摆弄了网页之后。配置,我得到:

由于内部服务器错误,页面无法显示。

我如何才能看到这个服务器错误背后的实际问题?


当前回答

Before changing the web.config file, I would check that the .NET Framework version that you are using is exactly (I mean it, 4.5 != 4.5.2) the same compared to your GoDaddy settings (ASP.Net settings in your Plesk panel). That should automatically change your web.config file to the correct framework. Also notice that for now (January '16), GoDaddy works with ASP.Net 3.5 and 4.5.2. To use 4.5.2 with Visual Studio it has to be 2012 or newer, and if not 2015, you must download and install the .NET Framework 4.5.2 Developer Package. If still not working, then yes, your next step should be enabling detailed error reporting so you can debug it.

其他回答

如果在物理主目录上没有足够的权限(即IIS_IUSRS没有访问权限),IIS也会报告状态码500而没有任何事件日志提示。

对我来说,下面的代码在网上。Config是罪魁祸首。当我删除它时,网站运行正常。

  <staticContent>
    <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
  </staticContent>

如果您正在使用自定义HttpHandler(即实现IHttpModule),请确保您正在检查对其Error方法的调用。

你可以让你的处理程序在本地调试期间抛出实际的httpexception(它有一个有用的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;
    }

还要确保检查异常的InnerException。

我在这个问题上非常紧张。确保下面的条目在根网络中。配置文件为我修复了它:

<configuration>
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
</configuration>

请记住,如果已有XML元素,则必须将其添加到现有的XML元素中。不能只在文件末尾添加,因为任何元素都不能有多个副本。

首先,您需要启用并查看web消息的详细错误,因为出于安全原因,这是一个一般性消息,没有提供关于实际发生情况的信息。

有了详细的错误,您可以在这里找到真正的问题。

此外,如果您可以在服务器上运行浏览器,则可以获得有关错误的详细信息,因为服务器识别出您是本地的,并将其显示给您。或者,如果您可以使用事件查看器读取服务器的日志,则还可以看到错误的详细信息。

第6页

<configuration>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

第7页

<configuration>
    <system.webServer>
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    </system.webServer>
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
</configuration>

注意:你可以避免Debug=true。您只需要暂时关闭自定义错误,并获得详细的错误页面。

这可以帮助:如何启用详细的错误消息(从IIS)。