熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

VS2005(c#)項目調試問題解決方案集錦

2013-11-13 09:59:37  來源: .NET編程 
檢測到有潛在危險的 RequestForm 值

  原因:

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

  ()HTML裡面寫了兩個 引起

  解決:

  方案一aspx文件頭中加入這句 <%@ Page validateRequest="false" %>

  方案二 修改nfig文件:

   <configuration>
  <systemweb>
  <pages validateRequest=false />
  </systemweb>
  </configuration>  


  因為validateRequest默認值為true只要設為false即可

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

  原因

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

  加上判斷即可 if (readerread()) { TextNameText =

  reader[FieldName]ToString(); }

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

  原因:

  若對象是null那麼調用對象的方法例如ToString()肯定出錯一般是數據庫字段的值為空

  在grideview等數據控件常出現

  解決:因此建議作NULL處理

  閱讀器關閉時 FieldCount 的嘗試無效

  原因:

  使用了SqlDataReader來綁定數據後將connection對象作了Close()處理

  類似

   public SqlDataReader   GetSomething()
{  
connopen(); 
 SqlDataReader   reader =
sqlcmdExcecutReader(CommandBehaviorCloseConnection)); 
 connclose();// occur error   here  
 return   reader;  
 }  


  在綁定的時候調用了這個方法來指定數據源如果使用這個方法則需要在調用函數中關閉Re

  ader這樣conn就可以自動關閉

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

  中調用之

  未能映射路徑

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

  

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

  <add key=FCKeditor:UserFilesPath value=/UserFiles/ />


  Unreachable code detected

  原因

  一般是在異常處理理或返回值時使用了 throw 或return 可能是其位置放在前面造成後面的代碼執行到了

  解決

  把相關的異常拋出處理的語句(throw)或return 的語句放到代理執行的最後一行

  索引超出范圍必須為非負值並小於集合大小

  原因

  ()沒有設置DATAKEYFIELD設為數據庫中相對應的唯一字段(一般是主鍵)

  ()DataGridColumns > eItemCells

  解決

  ()設置datakeyfield

  ()加入判斷語句unt (datagrid可以是其它相類似的服務器控件)

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

  數據源不支持服務器端的數據分頁

  解決方法:

  不要使用DataReader改成使用DataSet或使用自定義分頁形式不采用提供的分頁功能

     OleDbDataAdapter da = new OleDbDataAdapter(sql connection);
  DataSet ds = new DataSet();
  daFill(ds News);
  GridViewDataSource = ds;
  GridViewDataBind(); 


  對象名***** 無效

  原因:當前使用的數據庫中沒有*****這張表

  解決: 查看是否程序中是否寫錯了所調用的表的名稱或看一下SQL數據庫中是否存在你所調用的表

  在建立與服務器的連接時出錯在連接到 SQL Server 在默認的設置下 SQL

  Server 不允許進行遠程連接可能會導致此失敗 (provider: 命名管道提供程序

  error: 無法打開到 SQL Server 的連接)

  solution: 主機上需要用固定的IP地址或服務器地址

  SqlDateTime 溢出必須介於 // :: AM 和 // :: PM

  之間

  出現這種問題``多半是因為你更新數據庫時``datetime字段值為空``默認插入

  日``造成datetime類型溢出

  出現表示屬性此處應為方法

  原因:

  VB與c#的方法屬性的格式有所不一樣導致

  可能是在design中綁定數據的語法出現錯誤 解決: 記住屬性用[] 方法用()

  記住綁定數據的正確語法(有以下幾種方式::<%Container.DataItem(“字段名”)%> <%

  #Eval(“字段名”)%><%Bind(“字段名”)%>等)

  未能從程序集DAL Version= Culture=neutral

  PublicKeyToken=null中加載類型DALSqlHelper

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

  解決:編譯一下(Rebuild)

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

  solution:調用存儲過程與定義的存儲過程所用的參數數量或所執行的SQL語句中所傳入的參

  數個數不一致(這是個SQL的錯誤)

  解決方案:仔細檢查在存儲過程中所設定的參數變量與實際輸入的參數值是否一一對應

  無法啟動調試綁定句柄無效

  原因:系統的Terminal Services沒有開啟

  Unable to debugging on the web serverDebug failed because integrated windows authentication is not enable

  解決方法:

  打開vs>工具(Tools)>選項(Option)>調試(debugging)>編輯並繼續(Edit and Continue)>全部打勾

  Automation 操作中文件名或類名未找到: RegExp

  解決方法:regsvr vbscriptdll

  SystemNullReferenceException: 未將對象引用設置到對象的實例

  原因:

  ()所設置的變量為空值或沒有取到值一般出現在傳遞參數的時候出現這個問題也會在使用datagrid或gridview或datalist等數據控件時出現

  ()控件名稱與codebehind裡面的沒有對應

  ()未用new初始化對象

  ()在程序中所引用的控件不存在

  解決方法:

  ()使用trycatchfinally捕捉錯誤或直接用responsewrite()輸出所取的變量值

  ()查看代碼中是否存在未初始化的變量

  錯誤 文件被數字簽名策略拒絕(安裝vssp時)

  解決方法:

  () 單擊開始單擊運行鍵入 control admintools然後單擊確定

  () 雙擊本地安全策略

  () 單擊軟件限制策略(注意如果未列出軟件限制請右擊軟件限制策略然後單擊新建策略 )

  ()對象類型雙擊強制

  () 單擊除本地管理員以外的所有用戶然後單擊確定

  () 重新啟動計算機

  微軟說明

  

  vs不能從源文件模式切換到視圖模式

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

  Validation of viewstate MAC failed

  解決辦法:頁面的頂部page加 EnableViewState=False EnableViewStateMac = False 來解決這個問題

  Automation server cant create object(Automation 服務器不能創建對)

  解決辦法:運行: Regsvr scrrundll 即可

  包加載失敗

  未能正確加載包Visual Web Developer Trident Designer Package(GUID =

  {AEECDEFAAEFF}

  解決方法:

  設置系統變量 VsLogActivity=

  在%APPDATA%\Microsoft\VisualStudio\\文件夾下創建文件ActivityLogxml

  Error

  Microsoft Visual Studio

  LoadLibrary failed for package [Visual Web Developer Trident Designer Package]

  {AEEBCDEFAAEFF}

  

  e

  c:\Program Files\Microsoft Visual Studio \Common\Packages\tridsndll

  從 WINNT\MicroSoftNET\Framework\vxxx 復制文件gdiplusdll 到 Program Files\Visual Studio \Common\Packages文件夾下

  在命令行下運行命令 devenv /resetskippkgs

  Error spawning cmdexe

  解決方案:把cmdexe 拷貝到VS安裝目錄下的VC/BIN目錄裡可以解決問題

  嘗試讀取或寫入受保護的內存

  解決:硬件有問題一般內存有問題

  無法在證書存儲區中找到清單簽名證書

  解決方法:用記事本打開項目的csproj文件刪除類似

  該項目中不存在目標ResolveKeySource

  原因:這個問題很罕見查詢國外相關資料後大致說是由於部署的不是一個標准的solution 需要在VS自帶的命令提示中運行下面這個東西恢復

  解決方法:

  ()將下列代碼存為XML文件命名為TestBuildxml

  

  <Project DefaultTargets=Build xmlns=>

  <PropertyGroup>

  <TargetConnectionString>Data Source=\sql%BUser ID=SqlUser%BPooling=False%BPassword=X</TargetConnectionString>

  </PropertyGroup>

  <ItemGroup>

  <DatabaseProject Include=Database\Databasedbproj/>

  <DatabaseProject Include=Database\Databasedbproj/>

  </ItemGroup>

  <Target Name=BuildAllDatabaseProjects>

  <MSBuild

  Properties=TargetConnectionString=$(TargetConnectionString)

  Projects=@(DatabaseProject)

  Targets=Build;Deploy>

  </MSBuild>

  </Target> 


  ()在命令提示中運行:msbuild /t:BuildAllDatabaseProjects TestBuildxml

  不能將值 NULL 插入列 **

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

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

  未能加載類型命名空間

  原因:

  ()項目修改後沒有進行編譯

  ()項目中原有的命名空間可能被修改了

  ()項目中所需要的ascx或其他頁面不存在或不包含在項目中

  解決方法:

  ()在修改完成之後請重新生成或編譯整個項目或解決方案

  ()手工修改所改動的命名空間注意名稱的大小寫再重新編譯

  ()將相關的文件包含在項目中

  不能訪問只讀文件*******

  解決方案:

  給虛擬目錄所對應的文件加上Everyone/寫入權限即可

  請求因 HTTP 狀態 失敗Access Denied

  解決方法:在iis信息服務器上把匿名訪問和允許iis控制密碼給勾上


From:http://tw.wingwit.com/Article/program/net/201311/12227.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.