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

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

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

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

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


当前回答

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

其他回答

500内部错误 Windows主机错误 Godaddy托管问题

我一直面临着同样的问题,但现在我的问题已经解决了。总是在这个主机上使用,它是有效的。

我也会建议大家做任何你想要在你的网站上做的改变。配置文件。请逐个执行,并在活动域中进行相同的测试,以便您可以找到确切的问题或托管提供商不允许您使用的功能。

<?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>

对于iis10,除了更改customErrors=Off来显示错误内容外,还有一个额外的步骤要做。

<system.web>
   <customErrors mode="Off" />
</system.web>
<system.webServer>
   <httpErrors existingResponse="PassThrough" errorMode="Detailed"/>
</system.webServer>

Raul在这个链接中回答了这个问题:关闭IIS8自定义错误

有时,原因可能是您的.dll程序集没有在服务器上正确注册。

例如,您可以在安装了Office的本地机器上成功运行c# Excel web应用程序,但在服务器部署时得到500错误,因为服务器上没有安装Office套件,因此您得到服务器错误。

我终于解决了这个“500内部服务器”错误时,部署ASP。NET MVC 3.0应用程序在godaddy上。Ocm共享托管。

不知何故,在引用的DLL文件版本和web.config文件中提到的版本上存在差异。

我尝试了各种论坛上提到的所有选项。没有任何帮助,尽管每个人都提出了相同的解决方案,但不知为何它在我的场景中不起作用。终于在撞了头两天之后。 我决定删除所有DLL文件引用和删除web。然后让应用程序抛出错误,然后逐个添加DLL文件,将其复制到local=true。

在添加了所有DLL文件之后,我创建了一个新的ASP。NET MVC应用程序,并复制了web。新应用程序的配置到我的实际应用程序。 我的实际应用程序现在有了一个新的网页。然后我从web的本地副本中复制了connectionstring和其他引用。我保存的配置。

我只是编译了应用程序并将其发布到本地文件夹 并将发布的文件夹FTP到goDaddy。

它起作用了,我的问题终于解决了。

我意识到你服务器上的文件和文件夹的权限也很重要。我从linux操作系统上传了我的文件,通常读写权限是有限的。因此,在上传时,权限仍然与本地机器相同。

我有同样的错误,我只是改变了我上传的文件夹的权限,错误就消失了。

希望它能帮助到别人。