本篇博文记录本人解决一个"用户无法注册"的问题的过程

1 问题描述:

用户可以删除;但不能注册,也不能修改权限:

图 1用户注册失败

图 2修改用户权限出错

2 解决过程

1)粗暴方法:直接替换正确的工程

我将一个正确的Access和DataService 工程替换掉原来出错的Access和DataService,依然出错。甚至,我将UserManage和DataAccessSilverlight两个工程一起替换,依然不起作用。

图 3被替换掉的几个工程(这几个工程与用户管理相关)

2)修改端口号

鄙人曾经使用新的端口号发布DataService工程,也同样不起作用:

图 4创建新的端口号

3)替换数据库

我甚至想到,有可能是数据库出现了问题,所以我连数据库也重新替换一个正确的,问题依然存在

4)使用测试数据在DataService内调试

上面提到的三种方法都是治标不治本。最根本的方法还是要调试服务本身。

我曾经想到用IE的开发者工具可以捕获请求和回应的过程,但我无法理解其中的具体过程,而且也看不出问题。所以这条路也行不通。

最终还是要到DataService工程下调试。

首先需要看一下注册用户的网页函数定义:

图 5注册用户函数

这个函数的参数的类型是一个自定义的类,而不是基本数据类型,所以无法使用参数调试。如下图:

图 6注册用户函数的调用

为了解决这个问题,我们可以写一个测试函数:

图 7测试函数

 

通过跟踪测试函数,发现问题出在这里:cmd无法转化为MySqlCommand,cmd转化之后为null

图 8问题错在:cmd无法转化为MySqlCommand

我恍然大悟,应该是MySql.Data.dll的版本号问题。后来检查,发现这个工程下面引用了

C:\Program Files (x86)\MySQL\Connector.NET 6.9\Assemblies\v4.0

这个路径下的MySql.Data.dll,其版本信息为:

图 9默认库版本信息

而正确的版本是:

图 10目标库版本信息

找到问题的原因之后,重新找到目标库,重新引用,即可以解决问题。

最新文章

  1. 基础2.Jquery过滤选择器
  2. Arduino学习经验(一)之解决舵机库和pwm输出冲突
  3. css对齐
  4. CefSharp的引用、配置、实例
  5. python num[y array
  6. stretchlim函数分析
  7. Chapter 01:创建和销毁对象
  8. 微软Visual Studio "14" CTP 2 发布
  9. hdu3065 ac自动机
  10. java web Servlet 学习笔记 -3 会话管理技术
  11. springboot集合jpa使用
  12. php的依赖注入容器
  13. Ubuntu 16.04出现:Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'
  14. js多个异步请求
  15. 把旧系统迁移到.Net Core 2.0 日记(3) - 详解依赖注入 (转)
  16. Unity3d学习笔记记录
  17. spark shuffle内在原理说明
  18. PSR编码规范
  19. Racket 版本的 24 点实现
  20. HDU-1053:Advanced Fruits(LCS+路径保存)

热门文章

  1. Haproxy 优化
  2. Hdoj 1312.Red and Black 题解
  3. Leetcode 80.删除排序数组中的重复项 II By Python
  4. 「ZJOI2015」地震后的幻想乡 解题报告
  5. cobbler无人值守自动安装
  6. 用go语言实现线程池
  7. 时间复杂度和大O表示法
  8. js jquery 遍历 for,while,each,map,grep
  9. 洛谷P1020 导弹拦截
  10. c/c++ 大于等于 大于 时间效率比较