首先本地IISExpress运行,没有任何错误。但发布到iis以后,除了几个特定的页面500,其他所有页面都是可以正常访问的,就连同一功能模块下的页面都可以访问。
我就检查了以下内容:
1.保证controller的正确性
2.路由也没问题
地址http://192.168.2.157:8000/ReturnManage/ReturnFibrinogen/ReturnFibrinogenIndex就会报500,
而http://192.168.2.157:8000/ReturnManage/ReturnEnzyme/ReturnEnzymeIndex是可以正常访问的。
有没有大神帮忙找下原因,下图是页面的访问信息
这个问题第一句话我已经描述大部分页面是没问题的,并且本地运行没有任何问题,只是发布后某些页面500。
我曾一度怀疑程序代码问题、文件权限问题、路由解析等等等等,最后测试到将问题缩小到2个文件,一个文件好用,一个文件还是500,程序代码也一模一样,开始检查文件权限、类型,也是一模一样,系统文件信息检查完之后我就开始在项目文件中找差别。
最后发现,报500的那个文件,他的属性生成操作,竟然是无,修改成内容后发布,可以访问了。
1.开启详细错误消息:在Web.config文件中,将<system.web>节点下的<customErrors>节点的mode属性设置为Off,以便在生产环境中显示详细的错误消息。这样可以帮助你获取更多关于500错误的信息。
2.查看IIS日志:在IIS日志中查找有关500错误的详细信息。默认情况下,IIS日志文件位于C:\inetpub\logs\LogFiles目录下。查找最新的日志文件,然后搜索包含500错误的记录。这些记录可能会提供更多有关错误的信息,例如异常消息或错误代码。
3.检查报错页面的依赖项和引用:确保你的应用程序所需的所有依赖项和引用都已正确安装。检查是否有任何缺少的或错误的引用,以及是否需要进行任何特定的配置。开发环境依赖项是全的,所以不报错,而服务器的依赖项可能不全,就报错了。
查看服务器日志:在IIS上的网站设置中启用详细错误消息,这样可以获取更多关于500错误的详细信息。检查服务器日志文件,通常位于IIS日志目录下(默认路径是C:\inetpub\logs\LogFiles)。
检查应用程序的错误处理:确保应用程序中的错误处理逻辑能够处理500错误,并且在出现错误时提供有用的错误消息。
检查应用程序依赖项:确保应用程序所依赖的所有组件、库和数据库都正确安装和配置,并且可以从部署的服务器上访问。
调试代码:使用调试器或日志记录功能,在涉及报错页面的控制器和视图中添加适当的日志记录语句,以便捕获潜在的错误和异常信息。
检查权限设置:确保应用程序所需的文件和目录的权限正确设置,以便IIS应用程序池用户(通常是IIS AppPool\YourAppPoolName)具有适当的访问权限。
检查配置文件:查看应用程序的配置文件(如web.config)是否存在任何错误或不一致之处。确保配置文件中的所有设置都正确,并且与应用程序的要求匹配。
这些是一些常见的排查步骤,可以帮助你确定500错误的原因。如果你提供更多细节或错误信息,我可能能够给出更具体的建议。