asp.net調試錯誤解決方法收集(1)

1.“/MMTest”應用程序中的服務器錯誤。

對於不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。

說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以瞭解有關該錯
誤以及代碼中導致錯誤的出處的詳細信息。

異常詳細信息: System.InvalidOperationException: 對於不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。

源錯誤:

行 156:    public void builderEditClose()
              行 157:    {
            行 159:     Close();
              行 160:     ds.Clear();
然後就是最後的更新,當然是用DataAdapter的Update()方法藉助CommandBuilder來實現,要注意的是,返回的錯誤將是“對於不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。”這是因爲我們用的Update()實際上是通過CommandBuilder動態生成sql語句,然後才進行的數據庫操作。這一點是必須要牢記的。 2.


然後就是最後的更新,當然是用DataAdapter的Update()方法藉助CommandBuilder來實現,要注意的是,如果你的數據庫一開始沒有定義主鍵,那進行更新的時候會出錯,返回的錯誤將是“對於不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。”這是因爲我們用的Update()實際上是通過CommandBuilder動態生成sql語句,然後才進行的數據庫操作。但如果你在一開始創建DataAdapter時的那個sql語句沒有包含有主鍵的列的話,那CommandBuilder將不會發生作用。這一點是必須要牢記的。

2.

 

 

 

 

 

源錯誤:

執行當前 Web 請求期間生成了未處理的異常。可以使用下面的異常堆棧跟蹤信息確定有關異常原因和發生位置的信息。  

堆棧跟蹤:

出現這個錯誤 肯定是數據庫的原因

1。查看數據庫是否爲只讀

2. 數據庫所在文件夾 是否有可寫權限

3。查看你的語句是否有問題

4。若有時候有,有時候沒有,一般爲數據庫併發訪問鎖表適成的,檢查對數據庫的訪問,保證每次對數據庫操作結束後關閉連接
   
總之 你必須總結出什麼時候報錯 是所有時候還是操作某個表的時候
------------------------------
3

From: http://www.netyi.net/zxjcs.asp?id=125

一、 調試 ASP.NET 應用程序時出現"未將項目配置爲進行調試"的錯誤信息

症狀

當您在 Visual Studio .NET 中調試 ASP.NET 應用程序時,可能會出現下面的錯誤信息:

Error while trying to run project: Unable to start debugging on the web server. The project is not configured to be debugged

For ASP.NET projects, verify that you have a valid project file called "Web.config" for the URL specified and "debug" is set to "true" in that file.
For ATL Server projects, verify that the "DEBUG" verb is associated with your ISAPI extension.
Would you like to disable future attempts to debug ASP.NET pages for this project?


原因

出現此錯誤主要是因爲下列原因:

ASP.NET 應用程序沒有 Web.Config 文件。
"Internet 服務管理器"中當前項目文件夾的執行許可屬性設置爲了無。

解決方案

若要解決此問題,請根據您的具體環境,使用以下方法之一:

如果您的項目沒有 Web.config 文件,則向包含該 ASP.NET 應用程序的目錄添加一個 Web.config 文件。如果您是在 Visual Studio .NET 中工作,則用右鍵單擊"項目資源管理器"中的項目,單擊添加新項,然後單擊 Web 配置文件。

如果您的項目已經有了 Web.config 文件,而且該 Web.config 文件的"編譯"部分中 debug 屬性設置爲了 true ,則請按照下列步驟設置該項目文件夾的執行許可屬性:

1 啓動"Internet 服務管理器",然後單擊要嘗試進行調試的項目。
2 右鍵單擊該項目,然後單擊屬性。
3 單擊目錄選項卡。
4 如果在執行許可列表中選擇了無,則單擊"僅顯示腳本"然後單擊應用。

二、在發送調試 HTTP 請求時出現"無法啓動調試"的錯誤信息

症狀

當您在 Visual Studio .NET 中調試 ASP.NET 應用程序時,可能會出現下面的錯誤信息:

Error while trying to run project:Unable to start debugging on the web server.Server-side error occurred on sending debug HTTP request.

Make sure the server is operating correctly.Make sure the server is operating correctly.You may also want to refer to the ASP.NET and ATL Server debugging topic in the online documentation.Would you like to disable future attempts to debug ASP.NET pages for this project?

原因

如果 ASP.NET 應用程序的 Web.config 文件中有語法錯誤,就會發生此問題。

解決方案
若要解決此問題,要確保 Web.config 文件中的可擴展標記語言 (XML) 有效且格式正確。此外,還要記住 Web.config 中的一切字符都是區分大小寫的。

三、調試 ASP.NET 應用程序時出現"訪問被拒絕。請檢查計算機調試管理器的 DCOM 配置設置。"的錯誤信息


症狀

當您在 Visual Studio .NET 中遠程調試 ASP.NET 應用程序時,可能會出現下面的錯誤信息:

Error while trying to run project:Unable to start debugging on the web server.Access is denied.Check the DCOM configuration settings for the machine debug manager.Would you like to disable future attempts to debug ASP.NET pages for this project?

原因

之所以會發生此錯誤是因爲試圖進行遠程調試的用戶不是 Microsoft Internet Information Server (IIS) 服務器上"調試器用戶"組的成員。
解決方案
若要將適當的用戶添加到"調試器用戶"組中,請在 Web 服務器上按照下列步驟操作:
1 從 Windows 開始菜單中,指向程序,指向管理工具,然後單擊計算機管理。
2 在左窗格中,單擊以展開計算機管理,系統工具和本地用戶和組節點。
3 單擊組,然後雙擊調試器用戶。
4 在調試器用戶屬性對話框中,單擊添加。
5 在選擇用戶或組對話框中,選擇適當的用戶,然後單擊確定。
6 單擊確定退出調試器用戶屬性對話框。
7 關閉"計算機管理"資源管理器。

四、調試 ASP.NET 應用程序時出現"無法在 Web 服務器上啓動調試"的錯誤信息

症狀

當您在 Visual Studio .NET 中調試 ASP.NET 應用程序時,可能會出現下面的錯誤信息:

Error while trying to run project:Unable to start debugging on the web server.Would you like to disable future attempts to debug ASP.NET pages for this project?

原因

之所以發生此錯誤是因爲 Microsoft Internet Information Server (IIS) 未運行或者運行不正常。

解決方案

若要解決此問題,必須重新啓動 IIS。爲此,請在命令提示符處鍵入 iisreset。  

五、調試 ASP.NET 頁時 Visual Studio .NET 調試器不在斷點停止

症狀

在 Visual Studio .NET 中調試 ASP.NET 應用程序時,調試器可能不在斷點處停止。

原因

之所以會發生此問題,是因爲在應用程序中未啓用 ASP.NET 調試。

解決方案

若要解決此問題,請在 Visual Studio .NET 中按照下列步驟操作:
1 在"解決方案資源管理器"中,選擇項目名稱。
2 在項目菜單中,單擊屬性。
3 單擊以展開配置屬性節點。
4 在調試下的啓用 ASP.NET 調試列表中,單擊 True。

 

說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。

異常詳細信息: System.Data.OleDb.OleDbException: 操作必須使用一個可更新的查詢。

六、無法調試 ASP.NET Web 應用程序

症狀

當您在 Microsoft Visual Studio .NET 中調試 ASP.NET 應用程序時,可能會顯示下面的 Microsoft 開發環境錯誤信息:

Error while trying to run project:Unable to start debugging on the web server.The server does not support debugging of ASP.NET or ATL Server applications.Run setup to install the Visual Studio .NET server components.If setup has been run, verify that a valid URL has been specified.

You may also want to refer to the ASP.NET and ATL Server debugging topic in the online documentation.Would you like to disable future attempts to debug ASP.NET pages for this project?

原因

如果 Microsoft .NET Framework 設置或安裝沒有正確完成,則可能發生此錯誤。發生此錯誤時,在 Microsoft Internet 信息服務 (IIS) 中不會正確配置 ASP.NET 文件擴展名(例如 .aspx)的應用程序映射。

若要檢查應用程序映射是否正確,請按照下列步驟操作:
1 單擊開始,指向程序,指向管理工具,然後單擊 Internet 服務管理器。
2 展開對應於本地主機(計算機名)的節點,然後展開默認 Web 站點節點。
3 右鍵單擊 Web 應用程序目錄,然後單擊屬性。
4 在目錄選項卡上的應用程序設置下,單擊配置。
5 單擊應用程序映射選項卡。
6 在應用程序映射選項卡的應用程序映射下,檢查 .aspx 擴展名是否映射到以下動態鏈接庫 (DLL):
C:/Windows Directory/Microsoft.Net/Framework/v1.0.3705/aspnet_isapi.dll

備註:必須用您的系統的正確目錄替代此路徑中的 Windows Directory。

7 如果未找到應用程序映射條目,請遵循"解決辦法"一節中的步驟執行。

解決方案

若要解決此問題,請使用 Aspnet_regiis.exe 管理實用工具,該實用工具在單個計算機上管理多個版本的 ASP.NET 的安裝和卸載。

若要使用 Aspnet_regiis.exe 實用工具,請遵循以下步驟:
1 單擊開始,然後單擊運行。
2 在打開框中鍵入 cmd,然後單擊確定以打開命令提示。
3 在命令提示處,鍵入 cd 命令以更改爲以下目錄:
C:/Windows Directory/Microsoft.Net/Framework/v1.0.3705

4 鍵入 aspnet_regiis -i 以正確配置所需的應用程序映射。  

Error while trying to run project:Unable to start debugging on the web server.Access is denied.Would you like to disable future attempts to debug ASP.NET pages for this project?

請驗證您是計算機上"管理員"組和"調試器用戶"組的成員。非管理員不具有調試 ASP.NET 輔助進程 (Aspnet_wp.exe) 的正確權限。


------------------------
4.
一個提交頁面,我用RequiredFieldValidator控制TextBox不能爲空,在本地的時候一切正常,但是今天上傳到服務器上卻出現問題,點擊提交按鈕,什麼都沒有驗證,直接就到達了所符合的頁面,後來,朋友讓我把aspnet_client上傳到服務器文件的根目錄下面,則當textbox爲空的時候,點擊提交按鈕的時候,也可以提示爲空,但是當textbox不爲空的時候,點擊提交按鈕,則什麼反應都沒有,就好像是按鈕事件丟失一樣!!

看看服務器根目錄下有aspnet_client目錄嗎?沒有把本地的拷貝上去。
服務器上重新註冊:aspnet_regiis -i

http://blog.csdn.net/fancyf/archive/2005/08/20/459618.aspx?Pending=true
有人發帖問“aspnet_client必須放在web根目錄嗎?怎樣改變這個路徑?”
  我一開始猜想這個路徑可能是硬編碼的。爲了證實一下,就打開了Reflector,試圖尋找到類似"/aspnet_client/system_web/1_1_4322/"的字符串,卻發現這個目錄的位置是可以自定義的,但是MSDN中沒有公開。相關代碼在System.Web.UI.Util.GetScriptLocation(HttpContext)中,

1internal static string GetScriptLocation(HttpContext context)
2...{
3      string text1 = null;
4       IDictionary dictionary1 = (IDictionary) context.GetConfig("system.web/webControls");
5      if (dictionary1 != null)
6      ...{
7             text1 = (string) dictionary1["clientScriptsLocation"];
8       }

9      if (text1 == null)
10      ...{
11            throw new HttpException(HttpRuntime.FormatResourceString("Missing_clientScriptsLocation"));
12       }

13      if (text1.IndexOf("{0}") >= 0)
14      ...{
15            string text2 = "system_web";
16            string text3 = VersionInfo.IsapiVersion.Substring(0, VersionInfo.IsapiVersion.LastIndexOf(".")).Replace(".", "_");
17             text1 = string.Format(text1, text2, text3);
18       }

19      return text1;
20}

  然後再machine.config中找到了默認的配置:
  
  當然也可以在web.config中針對單個應用程序進行配置。如果要把aspnet_client目錄放在根目錄下的myweb中,那麼就在web.config文件的
  
    
標籤內加上這麼一句:
    
  或者直接寫
    
  就可以了。
5.http://chenglin.cnblogs.com/archive/2005/06/03/166978.aspx


配置錯誤


說明: 在處理向該請求提供服務所需的配置文件時出錯。請檢查下面的特定錯誤詳細信息並適當地修改配置文件。

分析器錯誤信息: 訪問被拒絕:“myApp”。

源錯誤:

行 256:      
行 257:      
行 259:     
行 260:

源文件: c:/windows/microsoft.net/framework/v1.1.4322/Config/machine.config     行: 258


另外還有一個 Access denied 的錯誤說是不能訪問 C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files 下的某個目錄。產生這些錯誤的原因很多,主要的可能包括:Bin 目錄或者 Web.config 被更改以及訪問文件系統的權限不夠。

如果 Bin 目錄或者 Web.config 被更改,MSDN 網站上有文章說是因爲 Microsoft Index Services(Indexing Service) 服務在運行。詳細內容可以訪問: PRB: Access Denied Error When You Make Code Modifications with Index Services Running

但是另外還需要注意一些別的問題,

  • 檢查 Bin 目錄的文件系統訪問權限。一般只要確保 Users 容器擁有“讀取和運行”、“列出文件夾目錄”和“讀取”的權限就可以了。
  • 如果提示說不能訪問 C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/... ,可以將 Temporary ASP.NET Files 目錄的訪問權限列表中添加 Everyone,並設置爲擁有所有的權限。然後在訪問一次此 Web 應用程序後,將 Temporary ASP.NET Files 目錄的訪問權限列表中將 Everyone 刪除就可以了。

綜上所述的方法,主要包括:

  • 禁用或設置 Indexing Service 服務;
  • 檢查 Bin 目錄的訪問權限;
  • 設置 Temporary ASP.NET Files 目錄的訪問權限。

10. “/EnterPrise”應用程序中的服務器錯誤。
--------------------------------------------------------------------------------
從客戶端(content="...管理器,右擊解決方案添加新建...")中檢測到有潛在危險的 Request.Form 值
解決辦法: web.config中加入




前一個作用於所有項目中文件,後者僅僅作用於本頁面.
11ASP.NET 未被授權訪問所請求的資源。請考慮授予 ASP.NET 請求標識訪問此資源的權限。ASP.NET 有一個在應用程序沒有模擬時使用的基進程標識(通常,在 IIS 5 上爲 {MACHINE}/ASPNET,在 IIS
6 上爲網絡服務)。如果應用程序正在通過 模擬,則標識將爲匿名用戶(通常爲IUSR_MACHINENAME)或經過身份驗證的請求用戶。


由於在iis 6.0中,默認的應用程序池中的標示用的是Network Service,所以在進程中是使用Network Service這個帳號運行來運行w3wp.exe進程,而當我們在運行VS 2003的時候是需要對D:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary
ASP.NET Files/目錄下進行讀寫操作的,所以看了一下該文件夾,發現沒有Network Service,添加上該賬號,同時選上FULL CONTROL,問題解決,但是至於爲什麼會產生這個問題我不大清楚,因爲在安裝WINDOWS 2003的時候,Network Service賬號是存在於Temporary ASP.NET Files該文件夾安全列表中的。

順便提一下,在IIS6.0中的默認應用程序池-->屬性-->標示中把Net Service改成Local System該問題也可以解決 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章