Silverlight用户无法注册之MySql.Data.dll不一致
本篇博文记录本人解决一个"用户无法注册"的问题的过程
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目标库版本信息
找到问题的原因之后,重新找到目标库,重新引用,即可以解决问题。
最新文章
- 基础2.Jquery过滤选择器
- Arduino学习经验(一)之解决舵机库和pwm输出冲突
- css对齐
- CefSharp的引用、配置、实例
- python num[y array
- stretchlim函数分析
- Chapter 01:创建和销毁对象
- 微软Visual Studio ";14"; CTP 2 发布
- hdu3065 ac自动机
- java web Servlet 学习笔记 -3 会话管理技术
- springboot集合jpa使用
- php的依赖注入容器
- 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'
- js多个异步请求
- 把旧系统迁移到.Net Core 2.0 日记(3) - 详解依赖注入 (转)
- Unity3d学习笔记记录
- spark shuffle内在原理说明
- PSR编码规范
- Racket 版本的 24 点实现
- HDU-1053:Advanced Fruits(LCS+路径保存)