.NET MVC4 本地正常 部署 服务器错误

开发环境:

VS2012 MySQL 5.5 连接器 官方MySQL Connector

错误场景:

本地完成开发后在本地VS环境测试,一切正常,在本地IIS部署后,也可以正常访问。部署到服务器后,在登陆页面验证用户信息部分发生500错误。由于是JS调用,所以页面上没有明显的错误。通过IE或者火狐调试可以发现调用页面出现500错误

页面逻辑:

Login:登陆页面,在该页面中存在一个Button,点击后用户信息通过POST方式传送至.Login/CheckUser Action进行数据验证,如果验证成功则返回TRUE,如果验证失败则返回FALSE,Login页面根据返回状态进行页面导航。

分析过程:

  1. 由于在本地VS端或者本地IIS调试正常,则可以确认,程序本身不存在错误问题。

  2. 部署后发生问题,则可以预设是由于服务器环境与本地环境配置不一致导致,这里经过检查服务器配置,发现没有问题。

  3. 缩小出错的范围:由于CheckUser无法调用返回,则可以再CheckUser全部代码外围增加try catch模块,讲异常记录在服务器文件日志中。

  4. 重复页面逻辑。发现在指定目录下生成日志文件,打开后,显示Mysql 未添加引用。但是,不应该会出现这个问题,因为本地是运行正常的,而且MYSQL  引用的是官方连接器。

  5. 最后一步到了解决问题的时候。问题出现在哪里呢?.NET MVC 工程创建的时候,有一个重要的东西就是Nuget ,该工具的作用是更新工程中所使用的引用文件(DLL),而如果我们是自己添加的DLL引用,即手动添加。则就可能不会在packages.config配置文件中增加相关DLL的引用配置。所以发生这种问题后,使用PM控制台运行如下命令:

    Install-Package MySql.Data

    控制台会提示更新成功,这个时候就会在packages.config配置文件中看到如下记录项:

    wKiom1OYL1CRyewwAAB6Poy-bdQ804.jpg

  6. 以上操作完成后,重新部署,系统即可正常运行。

总结:

默认新建的工程,帮助增加了很多的特性,但是也隐藏了很多问题,在某些疑难确实找不到头绪的时候,需要回头来看一下是不是工程本身出现了问题。如果能够更好的学习MVC本身的实现过程,则可以理解在程序运行中出现的很多问题和根源。微软MVC项目是开源的。MVC开源地址  代码可以领略很多精彩~

你可能感兴趣的:(服务器,程序,记录,火狐,连接器)