问题记录
记录平时开发中遇到的小问题
1.用动软生成器生成的类库操作数据时,提示 “DBUtility.DbHelperSQL”的类型初始值设定项引发异常”
解决:引用原来项目的dll操作数据库,当前项目忘了配置数据库连接字符串了。在web.config中添加数据库连接字符串即可
2.读取xml时出现“分析EntityName时出错”
解决:将xml中出现的特殊字符转义 如:"&" 改写为"&"
3.后台设置textbox为只读,但想得到它的值
解决:在加载页面时在后台这样设置:TextBox1.Attributes.Add("readonly", "true");
4.就如下代码,还总是提示js错误
function checkall(){
alert('test')
}
<input type="checkbox" name="checkall" id="checkall" onclick="checkall()" />全选
解决:原来控件的id,name不能和方法的名称相同,修改为不相同即可
5.操作oracle时提示:ORA-01008: not all variables boun(ora-01008 并非所有变量都已关联)
解决:就是null值的问题,将所有的nul值改为DBNull.Value就好了,如红色字体所示
foreach (OracleParameter parm in cmdParms)
{
if (parm.Value == null)
{
parm.Value = DBNull.Value;
}
cmd.Parameters.Add(parm);
}
6.Error:在 .net webservice 类型不明确他可能来自程序集 或者程序集 请在类型名称中明确的指明程序集
解决:删除出错文件类库的bin文件夹下的dll,重新生成即可
7.WIN7下IE8的开发人员工具只在任务栏显示,但打不开
解决:将鼠标放在任务栏上出现的开发人员工具上,在出现的预览窗口上点击最大化即可解决。
8.无法加载DLL “abc.dll”:找不到指定的模块。(异常来自HRESULT:0x8007007E)
解决:用软件depends.exe打开abc.dll找到标记为问号的dll,这些即为缺失的dll,从其他地方找到这些dll复制到abc.dll同级目录即可。
9.打开VS2008时提示:遇到错误。建议您尽快重新启动应用程序。
错误:不支持此接口
文件:vsee\internal\inc\vscomptr.inl
行号:256
解决:在VS2008命令提示窗口中执行 "devenv.exe /ResetSkipPkgs" 即可
10.未能加载文件或程序集……或它的某一个依赖项。参数不正确。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))
解决: 删除 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET files 文件夹
11.使用SqlBulkCopy批量复制数据时出现:
在从服务器接收结果时发生传输级错误。(provider:TCP提供程序,error:0-提定的网络名不再可用)
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The specified network name is no longer available.)
并且目标数据库服务器将自动停止。
原因:导入的数据源字段的长度大于目标数据库中的字段。
12.调用webservice方法时,执行大约一分钟时报“System.Threading.ThreadAbortException: 正在中止线程”错误。
在webservice的web.config设置debug=“true”时没有问题,debug=“false”则会出现
原因: web.config的httpRuntime元素中有属性 executionTimeout配置请求允许的时间。在.NET Framework 4.0以下默认为90秒,以上为110秒。
且此属性只有当 compilation元素中的调试特性(debug)设置为 false 时,此超时属性才适用。
解决:将executionTimeout属性设置为一个比较大的数即可。
13.两个用户同时调用webservice方法,此webservice方法比较耗时,且在执行过程中会修改web.config值。导致先执行的报“System.Threading.ThreadAbortException: 正在中止线程”错误。
原因:前一个用户正在执行一个比较费时的操作,此时后一个用户修改了web.config,导致进程被中止。但不是立即中止,大约在两分钟后才会中止抛出错误。
解决:避免在运行时修改web.config.
14.事务回滚时报“System.Data.SqlClient.SqlException: 超时时间已到。在操作完成之前超时时间已过或服务器未响应。”
原因:此事务进行了大数据量的操作,因此回滚比较费时;但是设置事务的SqlCommand的CommandTimeOut属性不起作用,通过反编译事务类后发现,原来此处的超时时间是SqlConnection的ConnectionTimeout属性。
解决:在连接字符串中加上Connection Timeout=120 即可。
15.客户端连接WebService时,报An error was discovered processing the <Security> header或time expired错误。
原因:webService中用了Microsoft.Web.Services2,且客户端时间和服务器时间相差超过了5分钟,目前没有发现有其它好的解决方法。只能将两台机器时间调整同步。
16.winform中TableLayoutPanel控件内的Label的Text值频繁改变(0.1秒)时,整个TableLayoutPanel闪烁
解决:给TableLayoutPanel设置开启双缓冲。代码如下(vb.net):
tblpDownload.GetType().GetProperty("DoubleBuffered", System.Reflection.BindingFlags.Instance Or System.Reflection.BindingFlags.NonPublic)
.SetValue(tblpDownload, True, Nothing)