asp.net 調試問題解決方案集錦

來源:互聯網
上載者:User

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

  原因:

  (1)在提交資料的頁面或webconfig中沒有對validateRequest的屬性進行正確的設定

  (2)HTML裡面寫了兩個 引起

  解決:

  方案一: 在.aspx檔案頭中加入這句:

  方案二: 修改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中的路徑配置不正確所致

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

  原因:

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

  2.可能是在design中綁定資料的文法出現錯誤 解決: 1.記住屬性用[] 方法用()

  3.記住綁定資料的正確文法(有以下幾種方式:: 等)

  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

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

  原因:這是資料庫表設計的錯誤,所涉及的表的欄位中設定了不可為空的屬性,但是傳入的值為null,所以報錯

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

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

  原因:

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

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

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

  解決方案:

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

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

  (3)將相關的檔案包含在項目中

  31.不能訪問唯讀檔案“****.***"

  解決方案:

  給虛擬目錄所對應的檔案加上“Everyone/寫入”許可權即可

  32.請求因 HTTP 狀態 401 失敗:Access Denied

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

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.