為了幫表姐寫一些東西,我灌了Visual Studio 2005
結果很orz的在我把網頁拉完後,一拉AccessDataSource後,就直接當給我看。之後整個網頁編輯的部份完全無法切到設計模式去,只能在原始碼編輯模式用。我灌這軟體就是為了用設計模式,快速的拉一些物件再來慢慢調整的
後來畫面提示我下命令:devenv /resetskippkgs
當然它的提示仍然還是很不人性化,我是查了下面的網頁才懂它是在寫些什麼。
http://hi.baidu.com/uvise/blog/item/c0ba2a309e99299aa8018e20.html
為了怕以後文章消失,我查不到資料,所以放到這邊來…下面是該文全文
1、數據為空。不能對空值調用此方法或屬性。
原因:
若對象是null,那麼調用對象的方法例如ToString()肯定出錯一般是數據庫字段的值為空。在grideview等數據控件常出現。
解決:因此建議作NULL處理。
2、檢測到有潛在危險的Request.Form值
原因:
(1)在提交數據的頁面或webconfig中沒有對validateRequest的屬性進行正確的設置;
(2)HTML裡面寫了兩個
解決:
方案一:在.aspx文件頭中加入這句:
<%@ Page validateRequest="false" %> |
方案二:修改web.config文件:
<configuration> |
因為validateRequest默認值為true。只要設為false即可。
如果設置EnableViewState="False" 和EnableViewStateMac = "False" ,那麼客戶端就可以篡改viewstate後回發給服務器,而服務器不能識別viewstate已經被篡改了,從而導致安全問題。
如果設置(asp.net 默認的設置)EnableViewState="true" 和EnableViewStateMac = "true",則服務端就可以識別篡改後的viewstate,一經識別viewstate被篡改,服務器可以關閉相應的操作。
3、「在沒有任何數據時進行無效的讀取嘗試」解決辦法
原因:
所返回的sqldatareader無數據記錄,但沒有作記錄判斷力處理。返回的是空值。加上判斷即可:
if (reader.read()) { TextName.Text = reader["FieldName"].ToString(); } |
4、閱讀器關閉時,FieldCount 的嘗試無效
原因:
使用了SqlDataReader來綁定數據後,將connection對象作了Close()處理。
類似:
public SqlDataReader GetSomething() |
在綁定的時候調用了這個方法來指定數據源。如果使用這個方法則需要在調用函數中關閉Reader這樣conn就可以自動關閉。
如果是使用的是SqlDataAdapter和DataSet那麼請去掉顯式關閉conn的調用。或者在finally中調用之。
5、未能映射路徑
原因:可能是在webconfig中的路徑配置不正確所致。
<add key="FCKeditor:BasePath" value="~/admin/fckeditor/"/> |
6、Unreachable code detected
原因:
一般是在異常處理理或返回值時使用了 throw 或return ,可能是其位置放在前面,造成後面的代碼執行到了。
解決:
把相關的異常拋出處理的語句(throw)或return 的語句放到代理執行的最後一行。
7、索引超出範圍。必須為非負值並小於集合大小。
原因:
(1)沒有設置DATAKEYFIELD設為數據庫中相對應的唯一字段(一般是主鍵);
(2)DataGrid1.Columns > e.Item.Cells
解決:
(1)設置datakeyfield;
(2)加入判斷語句datagrid1.item.count (datagrid可以是其它相類似的服務器控件)。
8、數據為空。不能對空值調用此方法或屬性。
9、數據源不支持服務器端的數據分頁。
解決方法:
不要使用DataReader,改成使用DataSet:或使用自定義分頁形式,不採用vs.net提供的分頁功能。
|
10、對象名'***** '無效
原因:當前使用的數據庫中沒有*****這張表。
解決:查看是否程序中是否寫錯了所調用的表的名稱或看一下SQL數據庫中是否存在你所調用的表。
11、在建立與服務器的連接時出錯。在連接到SQL Server 2005時,在默認的設置下SQL Server不允許進行遠程連接可能會導致此失敗。(provider: 命名管道提供程序,error: 40 -無法打開到SQL Server的連接)
solution:主機上需要用固定的IP地址或服務器地址
12、SqlDateTime 溢出。必須介於1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之間。
出現這種問題「多半是因為你更新數據庫時」datetime字段值為空「默認插入0001年01月01日」造成datetime類型溢出。
13、出現-------表示「屬性」,此處應為「方法」
原因:
(一)VB與c#的方法,屬性的格式有所不一樣導致。
(二)可能是在design中綁定數據的語法出現錯誤,解決:
(1)記住屬性用[] 方法用();
(2)記住綁定數據的正確語法(有以下幾種方式:: 等) 。
14、未能從程序集「DAL, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null」中加載類型「DAL.SqlHelper」。
原因:修改了其他層後未能重新編譯成dll。
解決:編譯一下(Rebuild)。
15、為過程或函數指定的參數太多
解決:調用存儲過程與定義的存儲過程所用的參數數量或所執行的SQL語句中所傳入的參數個數不一致(這是個SQL的錯誤)。
解決方案:仔細檢查在存儲過程中所設定的參數變量,與實際輸入的參數值是否一一對應。
16、無法啟動調試,綁定句柄無效
原因:系統的Terminal Services沒有開啟。
17、Unable to debugging on the web server.Debug failed because integrated windows authentication is not enable
解決方法:
打開vs2005->工具(Tools)->選項(Option)->調試(debugging)->編輯並繼續(Edit and Continue)->全部打勾。
18、Automation 操作中文件名或類名未找到: 'RegExp'
解決方法:regsvr32 vbscript.dll
19、System.NullReferenceException: 未將對象引用設置到對象的實例。
原因:
(1)所設置的變量為空值或沒有取到值,一般出現在傳遞參數的時候出現這個問題,也會在使用datagrid或gridview或datalist等數據控件時出現。
(2)控件名稱與codebehind裡面的沒有對應;
(3)未用new初始化對象;
(4)在程序中所引用的控件不存在。
解決方法:
(1)使用try..catch...finally捕捉錯誤,或直接用response.write()輸出所取的變量值;
(2)查看代碼中是否存在未初始化的變量。
20、Validation of viewstate MAC failed
解決辦法:頁面的頂部page加EnableViewState="False" EnableViewStateMac = "False"來解決這個問題。
21、Automation server can't create object"(Automation 服務器不能創建對)
解決辦法:運行:Regsvr32 scrrun.dll即可。
22、錯誤 1718。文件被數字簽名策略拒絕(安裝vs2005sp1時)
解決方法:
(1)單擊「開始」,單擊「運行」,鍵入 control admintools,然後單擊「確定」。
(2)雙擊「本地安全策略」。
(3)單擊「軟件限制策略」。(注意:如果未列出軟件限制,請右擊「軟件限制策略」,然後單擊「新建策略」。)
(4)在「對象類型」下,雙擊「強制」。
(5)單擊「除本地管理員以外的所有用戶」,然後單擊「確定」。
(6)重新啟動計算機。
微軟說明:http://support.microsoft.com/kb/925336
23、VS2005不能從源文件模式切換到視圖模式
解決方法:Dos下運行下 devenv /resetskippkgs (win+r cmd)。
24、包加載失敗
未能正確加載包"Visual Web Developer Trident Designer Package"(GUID ={30AE7E28-6C02-496D-8E43-85F7A90AEFF1}。
解決方法:
(1)設置系統變量 VsLogActivity=1;
(2)在%APPDATA%/Microsoft/VisualStudio/8.0/文件夾下創建文件ActivityLog.xml。
Error |
(3)從WINNT/MicroSoft.NET/Framework/v2.0.xxx複製文件gdiplus.dll到Program Files/Visual Studio 8/Common7/Packages文件夾下。
(4)在命令行下運行命令:devenv /resetskippkgs。
25、Error spawning 'cmd.exe'.
解決方案:把cmd.exe 拷貝到VS安裝目錄下的VC/BIN目錄裡,可以解決問題。
26、嘗試讀取或寫入受保護的內存
解決:硬件有問題,一般內存有問題。
27、無法在證書存儲區中找到清單簽名證書
解決方法:用記事本打開項目的.csproj文件,刪除類似。
28、該項目中不存在目標「ResolveKeySource」
原因:這個問題很罕見,查詢國外相關資料後,大致說是由於部署的不是一個標準的solution,需要在VS自帶的命令提示中運行下面這個東西恢復。
解決方法:
(1)將下列代碼存為XML文件,命名為TestBuild.xml
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
(2)在命令提示中運行:msbuild /t:BuildAllDatabaseProjects TestBuild.xml
29、不能將值 NULL 插入列 '**'
原因:這是數據庫表設計的錯誤,所涉及的表的字段中設置了不能為空的屬性,但是傳入的值為null,所以報錯。
解決方法:查看是否所傳入的值是否為Null,或修改數據庫中表的所對應的列的屬性。
30、未能加載類型"命名空間.類"...
原因:
(1)項目修改後沒有進行編譯;
(2)項目中原有的命名空間可能被修改了;
(3)項目中所需要的ascx或其他頁面不存在,或不包含在項目中。
解決方法:
(1)在修改完成之後,請重新生成或編譯整個項目或解決方案;
(2)手工修改所改動的命名空間,注意名稱的大小寫,再重新編譯;
(3)將相關的文件包含在項目中。
31、不能訪問只讀文件「****.***"
解決方案:
給虛擬目錄所對應的文件加上「Everyone/寫入」權限即可。
32、請求因HTTP狀態401失敗:Access Denied
解決方法:在iis信息服務器上把匿名訪問和允許iis控制密碼給勾上。