VS2005 错误处理

為了幫表姐寫一些東西,我灌了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>
<system.web>
<pages validateRequest="false" />
</system.web>
</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()
{  
conn.open();
SqlDataReader   reader =
sqlcmd.ExcecutReader(CommandBehavior.CloseConnection));
conn.close();// occur error   here  
return   reader;  
}

在綁定的時候調用了這個方法來指定數據源。如果使用這個方法則需要在調用函數中關閉Reader這樣conn就可以自動關閉。

如果是使用的是SqlDataAdapter和DataSet那麼請去掉顯式關閉conn的調用。或者在finally中調用之。

5、未能映射路徑

原因:可能是在webconfig中的路徑配置不正確所致。

<add key="FCKeditor:BasePath" value="~/admin/fckeditor/"/>
<add key="FCKeditor:UserFilesPath" value="/UserFiles/" />

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提供的分頁功能。

OleDbDataAdapter da = new OleDbDataAdapter(sql, connection);
DataSet ds2 = new DataSet();
da.Fill(ds2, "News");

GridView1.DataSource = ds2;
GridView1.DataBind();

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
Microsoft Visual Studio
LoadLibrary failed for package [Visual Web Developer Trident Designer Package]
{30AE7E2B-6C02-496D-8E43-85F7A90AEFF1}
--------------------------------------------------------------------------------
8007007e
c:/Program Files/Microsoft Visual Studio 8/Common7/Packages/tridsn.dll

(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">
<PropertyGroup>
<TargetConnectionString>Data Source=./sql2005%3BUser

ID=SqlUser%3BPooling=False%3BPassword=X</TargetConnectionString>
</PropertyGroup>
<ItemGroup>
<DatabaseProject Include="Database1/Database1.dbproj"/>
<DatabaseProject Include="Database2/Database2.dbproj"/>
</ItemGroup>
<Target Name="BuildAllDatabaseProjects">
<MSBuild
Properties="TargetConnectionString=$(TargetConnectionString)"
Projects="@(DatabaseProject)"
Targets="Build;Deploy">
</MSBuild>
</Target>




(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控制密碼給勾上。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值