程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> VS2005調試問題解決方案集錦--引用

VS2005調試問題解決方案集錦--引用

編輯:.NET實例教程

1.檢測到有潛在危險的 Request.Form 值

原因:

(1)在提交數據的頁面或webconfig中沒有對validateRequest的屬性進行正確的設置

(2)Html裡面寫了兩個<form>引起

解決:
方案一: 在.ASPx文件頭中加入這句: <%@ Page validateRequest="false"   %>
方案二: 修改web.config文件:
<configuration>
   <system.web>
   <pages validateRequest="false" />
   </system.web>
   </configuration>
因為validateRequest默認值為true。只要設為false即可。

2.“在沒有任何數據時進行無效的讀取嘗試”解決辦法

原因:
所返回的sqldatareader無數據記錄,但沒有作記錄判斷力處理。返回的是空值

加上判斷即可: if (reader.read()) { TextName.Text =
reader["FIEldName"].ToString(); }


3.數據為空。不能對空值調用此方法或屬性。

原因:
若對象是null,那麼調用對象的方法例如ToString()肯定出錯一般是數據庫字段的值為空
在gridevIEw等數據控件常出現

解決:因此建議作NULL處理


4.閱讀器關閉時 FIEldCount 的嘗試無效

原因:
使用了SqlDataReader來綁定數據後,將connection對象作了Close()處理
類似
public SqlDataReader    GetSomething()
{   
conn.open();  
SqlDataReader    reader =
sqlcmd.ExcecutReader(CommandBehavior.CloseConnection));  
conn.close();// occur error    here   
return    reader;   
}
在綁定的時候調用了這個方法來指定數據源。如果使用這個方法則需要在調用函數中關閉Re
ader這樣conn就可以自動關閉。

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


5.未能映射路徑

原因:可能是在webconfig中的路徑配置不正確所致,在FCKEditor的配置中這種問題比較突出

<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可以是其它相類似的服務器控件)


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.出現-------表示“屬性”,此處應為“方法”

原因:
1.VB與c#的方法,屬性的格式有所不一樣導致。
2.可能是在design中綁定數據的語法出現錯誤 解決: 1.記住屬性用[] 方法用()
2.記住綁定數據的正確語法(有以下幾種方式::<%Container.DataItem(“字段名”)%> <%
#Eval(“字段名”)%> <%Bind(“字段名”)%>等)


14.未能從程序集“DAL, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null”中加載類型“DAL.SqlHelper”。


原因:修改了其他層後未能重新編譯成dll

解決:編譯一下(Rebuild)

15.為過程或函數 指定的參數太多,

solution:調用存儲過程與定義的存儲過程所用的參數數量或所執行的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.錯誤 1718。文件被數字簽名策略拒絕(安裝vs2005sp1時)解決方法:

(1). 單擊“開始”,單擊“運行”,鍵入 control admintools,然後單擊“確定”。
(2). 雙擊“本地安全策略”。
(3). 單擊“軟件限制策略”。(注意:如果未列出軟件限制,請右擊“軟件限制策略”,然後單擊“新建策略”。 )
(4). 在“對象類型”下,雙擊“強制”。
(5). 單擊“除本地管理員以外的所有用戶”,然後單擊“確定”。
(6). 重新啟動計算機。

微軟說明:
http://support.microsoft.com/kb/925336

21.vs2005不能從源文件模式切換到視圖模式

解決方法:DOS下運行下 devenv /resetskippkgs (win+r cmd)

22.Validation of vIEwstate Mac failed
解決辦法:頁面的頂部page加 EnableViewState="False" EnableVIEwStateMac = "False" 來解決這個問題

23.Automation server can't create object"(Automation 服務器不能創建)

解決辦法:運行: Regsvr32 scrrun.dll 即可。

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



</Project>

29.不能將值 NULL 插入列 '**'

原因:這是數據庫表設計的錯誤,所涉及的表的字段中設置了不能為空的屬性,但是傳入的值為null,所以報錯

解決方法:查看是否所傳入的值是否為Null,或修改數據庫中表的所對應的列的屬性


30.未能加載類型"命名空間.類"...

原因:
(1)項目修改後沒有進行編譯
(2)項目中原有的命名空間可能被修改了
(3)項目中所需要的ascx或其他頁面不存在,或不包含在項目中

解決方法:
(1)在修改完成之後,請重新生成或編譯整個項目或解決方案
(2)手工修改所改動的命名空間,注意名稱的大小寫,再重新編譯
(3)將相關的文件包含在項目中


31.不能訪問只讀文件“****.***"
解決方案:
給虛擬目錄所對應的文件加上“Everyone/寫入”權限即可

32.請求因 HTTP 狀態 401 失敗:Access DenIEd解決方法:在IIS信息服務器上把匿名訪問和允許IIS控制密碼給勾上 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved