在最近一次的小项目中要在一个新的服务器上布置一个网站。过程一波三折,花费了我一上午的时间。到了晚上的时候左思右想觉得不对,自己需要一个地方记录一下平时工作中遇到的问题,免得下次遇到再各种百度拖累进度。
首先是第一个问题,登录服务器一看安装的是.net framework 4.5,然后我自己使用的是4.7的框架。那就想着降一下版本吧。改变了项目的目标框架后,VS提示我有很多包得重新加载。有些没有依赖项的包直接删了重装就行。接着发现一些有依赖项的或者被依赖的一下子还删不掉。最终发现有个选项里面有强制删除和删除依赖项的选项,勾上后再也不用担心删不掉了。
项目框架修改完后紧接着遇到了第二个问题,在项目发布后发现访问不了ASHX,提示 500 服务器内部错误。为了获得更详细的错误信息对症下药,首先需要让服务器把详细错误给暴露出来。可以在IIS中的错误页中设置,在IIS管理器中双击错误页进入,选择边上的编辑和功能设置,勾选上详细错误。
设置完之后发现错误信息是“处理程序“SimpleHandlerFactory-Integrated”在其模块列表中有一个错误模块”,经过百度发现是因为ASP.NET没有成功注册到IIS中,很有可能是先安装.Net Framework,然后安装IIS。为了避免此问题发生,要先安装IIS再安装.Net Framework。
对此的解决方法是 管用员权限进入cmd命令提示符界面,执行命令"cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319",运行:aspnet_regiis.exe -i
(注意:32位操作系统路径是C:\Windows\Microsoft.NET\Framework\v4.0.30319)
不过最终我选择了卸载.net framework然后重新安装,问题也一样解决了。