天天看點

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

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

對于不傳回任何鍵列資訊的 SelectCommand 不支援 UpdateCommand 的動态 SQL 生成。

說明: 執行目前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤資訊,以了解有關該錯

誤以及代碼中導緻錯誤的出處的詳細資訊。

異常詳細資訊: System.InvalidOperationException: 對于不傳回任何鍵列資訊的 SelectCommand 不支援 UpdateCommand 的動态 SQL 生成。

源錯誤:

行 156:    public void builderEditClose()
              行 157:    {
            行 158:     ada.Update(ds);
            行 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)中,

1

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

internal static string GetScriptLocation(HttpContext context)

2

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

...{

3

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

      string text1 = null;

4

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

       IDictionary dictionary1 = (IDictionary) context.GetConfig("system.web/webControls");

5

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

      if (dictionary1 != null)

6

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

      ...{

7

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

             text1 = (string) dictionary1["clientScriptsLocation"];

8

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

       }

9

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

      if (text1 == null)

10

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

      ...{

11

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

            throw new HttpException(HttpRuntime.FormatResourceString("Missing_clientScriptsLocation"));

12

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

       }

13

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

      if (text1.IndexOf("{0}") >= 0)

14

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

      ...{

15

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

            string text2 = "system_web";

16

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

            string text3 = VersionInfo.IsapiVersion.Substring(0, VersionInfo.IsapiVersion.LastIndexOf(".")).Replace(".", "_");

17

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

             text1 = string.Format(text1, text2, text3);

18

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

       }

19

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

      return text1;

20

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

}

  然後再machine.config中找到了預設的配置:

  

  當然也可以在web.config中針對單個應用程式進行配置。如果要把aspnet_client目錄放在根目錄下的myweb中,那麼就在web.config檔案的

标簽内加上這麼一句:

  或者直接寫

  就可以了。

5.http://chenglin.cnblogs.com/archive/2005/06/03/166978.aspx

配置錯誤

說明: 在處理向該請求提供服務所需的配置檔案時出錯。請檢查下面的特定錯誤詳細資訊并适當地修改配置檔案。

分析器錯誤資訊: 通路被拒絕:“myApp”。

源錯誤:

行 256:      
    
行 257:      
    
行 258:      
     
行 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該問題也可以解決  

繼續閱讀