一、 背景
为了排查项目中一个问题,将解决方案中 web项目由 v3.5升级至 v4.0, 排查完成后, 在源代码管理器中撤消所有更改, 没多想,以为一切很正常.
二、 降下来后, 调试运行,在浏览器中出现以下画面
三、 由于使用了TFS版本管理,且项目分支为 开发与发布两支, 降级的是开发这一分支, 虽然 我确信两个分支应该一模一样,但死活开发这一支就是出现上面的现象,本着最小排除法原则,做了以下检查或比较
1)关闭vs重新运行解决方案,现象仍在;
2) 重启计算机后重新, 现象仍在;
3)对比了解决方案.sln , web.csproj, web.config等文件, 完全相同
4) 在另一台计算机上获取最新的开发分支,运行正常
5)与发布分支对比dll引用, 完全
四 、分析: 我肯定这个差别不在版本管理范围内,但又不知道如何找到它,
5xx错误肯定是服务器端错误.
突然,我记起上次做 IISExpress 外网访问时,IISExpress的配置文件是不在源代码版本管理中的.
点任务栏中的iis express 启动器, 点击网站名称, 果然, 在运行时上显示着 v4.0
五、解决办法
也许是降级后该配置文件没有能正确降至v2.0 (可能是因为v4.0也能运行v3.5的原因吗?)
将
<site name="Web" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="E:\hdh_workspaces2\C2011_xxxxxx\ProjectCostSystem_20160407_xxxxx_开发\Webs" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:2011:localhost" />
</bindings>
</site>
中的 applicationPool="Clr4IntegratedAppPool"> 改为 applicationPool="Clr2IntegratedAppPool">
保存iisexpress配置文件,关闭启动器,关闭vs,再次打开解决方案.
成功!