調試ASP.NET網站IIS環境問題解決方法匯總
2024-07-10 13:28:04
供稿:網友
調試網站時出現錯誤,錯誤如下:
1.
分析器錯誤消息: 創建 RewriterConfig 的配置節處理程序時出錯: 無法生成臨時類(result=1)。
error CS2001: 未能找到源文件“C:/WINDOWS/TEMP/.....
error CS2008: 未指定輸入
源錯誤:
行 23:
行 24: <!--URL Rewriter-->
行 25: <RewriterConfig>
行 26: <Rules>
行 27: <RewriterRule>
解決辦法是:
只要把C:盤下,windows目錄下,temp文件夾增加一個evryone的用戶權限就可以了,權限可以為完全控制.
就OK啦
2.
異常詳細信息: System.InvalidProgramException: 公共語言運行時檢測到無效的程序
運行C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i
頁面正常!
3.
當前標識沒有對“C:/WINDOWS/Microsoft.net/Framework/v2.0.50727/Temporary ASP.net Files”的寫訪問權限問題真正的解決辦法
powered by 25175.net
這個問題出現過兩次,按照網上有些文章說的重新安裝.net FrameWork 2.0 并沒有作用,他們解釋的理由是IIS和framework2.0的安裝順序有問題,所以要重新安裝一次,我被這個問題困擾了很久,直到昨天,終于找到了問題所在。
我發現只要刪除C:/WINDOWS/Microsoft.net/Framework/v2.0.50727/Temporary ASP.net Files 里面的文件就可以了,刪除以后一切恢復正常,也就是說.net在運行的過程中會不斷的往這個臨時文件夾寫入一些數據,因為某種原因,這些數據寫不進去了,所以提示沒有寫入權限,這種情況發生的幾率其實很小,經常會出現在服務器在有很多用戶訪問的時候重啟了服務器,這時有可能會出現這種錯誤。
但是我發現清空了里面的問題,暫時是好了,但是只要時間一長又會重新出現這個錯誤,百思不得其解,查看系統的應用程序日志,找到了原因。在出現這個錯誤之前,系統有一條錯誤日志,說的是磁盤空間不足,奇怪,我的服務器每個盤都還有好幾十個G的空間,怎么會報磁盤空間不足,突然想起來原來是我在服務器上做了磁盤配額,每個用戶只分配了10G可用空間,檢查networkService用戶,它的磁盤空間已經用戶,所以才報沒有寫入權限的錯誤。擴大其磁盤配額,一切恢復正常。
如果大家出現這個問題,建議大家檢查一下磁盤空間是否真的不足,是否加了磁盤配額,另外查看一下 C:/windows/temp文件夾,因為.net 運行時需要network Service用戶訪問這個文件夾,看看這個文件夾內的文件是否太大,定時清空一下。一切OK!
4. 打開網站出現:
“/”應用程序中的服務器錯誤。
已成功與服務器建立連接,但是在登錄過程中發生錯誤。 (provider: TCP 提供程序, error: 0 - 指定的網絡名不再可用。)
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Data.SqlClient.SqlException: 已成功與服務器建立連接,但是在登錄過程中發生錯誤。 (provider: TCP 提供程序, error: 0 - 指定的網絡名不再可用。)
源錯誤:
執行當前 Web 請求期間生成了未處理的異常。可以使用下面的異常堆棧跟蹤信息確定有關異常原因和發生位置的信息。
堆棧跟蹤:
[SqlException (0x80131904): 已成功與服務器建立連接,但是在登錄過程中發生錯誤。 (provider: TCP 提供程序, error: 0 - 指定的網絡名不再可用。)]
打開web.config把127.0.0.1改為“ 機器名/MSSQL2000”,(在本地機器測試,因為安裝了兩個版本MSSQL數據庫服務器),如下
<add key="StrConn" value="Server=機器名/MSSQL2000;User id=用戶名;pwd=密碼;database=數據庫名"/>
出現正常頁面!
asp.net調試錯誤解決方法收集
[轉載自網絡]
1.“/MMTest”應用程序中的服務器錯誤。
對于不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。 說明: 執行當前 Web(神州培訓網-http://sz.szpxe.com/article/view/51289) 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯
誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: 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語句,然后才進行的數據庫操作。但如果你在一開始創建DataAdapter時的那個sql語句沒有包含有主鍵的列的話,那CommandBuilder將不會發生作用。這一點是必須要牢記的。
2.
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.Data.OleDb.OleDbException: 操作必須使用一個可更新的查詢。
然后就是最后的更新,當然是用DataAdapter的Update()方法借助CommandBuilder來實現,要注意的是,返回的錯誤將是“對于不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。”這是因為我們用的Update()實際上是通過CommandBuilder動態生成sql語句,然后才進行的數據庫操作。這一點是必須要牢記的。 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。
六、無法調試 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網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁internal static string GetScriptLocation(HttpContext context)
2...{
3調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 string text1 = null;
4調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 IDictionary dictionary1 = (IDictionary) context.GetConfig("system.web/webControls");
5調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 if (dictionary1 != null)
6 ...{
7調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 text1 = (string) dictionary1["clientScriptsLocation"];
8調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 }
9調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 if (text1 == null)
10 ...{
11調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 throw new HttpException(HttpRuntime.FormatResourceString("Missing_clientScriptsLocation"));
12調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 }
13調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 if (text1.IndexOf("{0}") >= 0)
14 ...{
15調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 string text2 = "system_web";
16調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 string text3 = VersionInfo.IsapiVersion.Substring(0, VersionInfo.IsapiVersion.LastIndexOf(".")).Replace(".", "_");
17調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 text1 = string.Format(text1, text2, text3);
18調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 }
19調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁 return text1;
20調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁}
然后再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 目錄的訪問權限。
< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >10. “/EnterPrise”應用程序中的服務器錯誤。
--------------------------------------------------------------------------------
從客戶端(content="...管理器,右擊解決方案?添加?新建...")中檢測到有潛在危險的 Request.Form 值。
解決辦法: web.config中加入
或< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" validateRequest="false" >
前一個作用于所有項目中文件,后者僅僅作用于本頁面.
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該問題也可以解決
< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >12“/WebApplication1”應用程序中的服務器錯誤。
--------------------------------------------------------------------------------對路徑“D:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary asp.net Files/webapplication180d7be/b46d84c0”的訪問被拒絕。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.UnauthorizedAccessException: 對路徑“D:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary asp.net Files/webapplication180d7be/b46d84c0”的訪問被拒絕。
asp.net 未被授權訪問所請求的資源。請考慮授予 asp.net 請求標識訪問此資源的權限。ASP.NET 有一個在應用程序沒有模擬時使用的基進程標識(通常,在 IIS 5 上為 {MACHINE}/ASPNET,在 IIS 6 上為網絡服務)。如果應用程序正在通過 模擬,則標識將為匿名用戶(通常為 IUSR_MACHINENAME)或經過身份驗證的請求用戶。
若要授予 asp.net 對文件的寫訪問權,請在資源管理器中右擊該文件,選擇“屬性”,然后選擇“安全”選項卡。單擊“添加”添加適當的用戶或組。突出顯示 asp.net 帳戶,選中所需訪問權限對應的框。
< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >
< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" > < Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" > < Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" > < Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >< Page language="c#" Codebehind="test.aspx.cs" AutoEventWireup="false" Inherits="MMTest.test" >
調試權限不夠
Try:
根據設計,ASP.NET 要求對根 Web 站點上或任何虛擬目錄上的 ASPNET 帳戶(Aspnet_wp.exe 進程帳戶)具有讀取、執行和列出訪問權限。這是必需的,以便 ASP.NET 可以訪問內容文件并可以監視文件更改。
解決方案
若要為根 Web 站點上或任何虛擬目錄上的 ASPNET 帳戶添加讀取、執行和列出訪問權限,請執行以下步驟:
在 Windows 資源管理器中,瀏覽到包含根 Web 站點(默認情況下是 C:/Inetpub/Wwwroot)或虛擬目錄的文件夾。
右鍵單擊該文件夾,然后單擊屬性。
在安全性選項卡上,單擊添加。
鍵入計算機名/ASPNET(例如,在名為 Webdev 的計算機上,鍵入 Webdev/ASPNET),然后單擊確定。
允許以下 ASPNET 帳戶權限:
讀取并執行
列出文件夾內容
讀取
單擊確定以關閉屬性對話框并保存所做更改。
備注:如果 Everyone 組或用戶組已具有對根 Web 站點或虛擬目錄的讀取訪問權限,則無需執行這些步驟。
-------
添加 IUSR_YouComputerName 和ASPNET 這兩個用戶對 C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/webapplication1dd84b00/b065eec7目錄的訪問權限,設置為完全訪問,
--------
將 asp.net 用戶(具體是什么記不太清楚了:< 可以到“安全性--用戶/用戶組”中查看)對目錄
C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files
的權限改為可寫或更高即可。
13System.Reflection.TargetInvocationException: 調用的目標發生了異常。 ---> System.UnauthorizedAccessException: 拒絕訪問。 --- 內部異常堆棧跟蹤的結尾 --- at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters) at System.RuntimeType.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParameters) at System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args) at System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args) at aspnetc.pubFunction.IISManager.Create(VirtualDirectory newdir) in f:/ziliao1/aspc/pubfunction/iismanager.cs:line 132
如果是在asp.net 下使用的話,要記得在 中添加
否則就會出現 “異常詳細信息: System.UnauthorizedAccessException: 拒絕訪問“。
iis訪問站點時出現輸入用戶名和密碼
1.iis->站點->屬性->目錄安全性->身份驗證和訪問控制->啟用匿名訪問
2.不知你有沒有添加這"IUSR_yourname"INTERNET 來賓賬戶!如沒有添加就應該是這個問題所引起.
(在"默認網站---屬性-----目錄安全性-----編輯------瀏覽-----高級-----立即查找"即可找到本賬戶,雙擊添加即可)
3.把你網站文件所在的目錄的,全權改成 everyone 再試一下先. 樓上們 所說的一般情況下默認是不會錯的.
4把iis目錄所在的文件夾權限加iuser_機器名
"Visual Studio .NET已檢測到指定的Web服務器運行的不是ASP.NET 1.1 版..."的解決辦法 選擇自 great_domino 的 Blog
關鍵字 "Visual Studio .NET已檢測到指定的Web服務器運行的不是ASP.NET 1.1 版..."的解決辦法
出處
昨天同事MM在調試一臺裝有.NET WEB服務器又出現了"Visual Studio .NET已檢測到指定的Web服務器運行的不是ASP.NET 1.1 版.."的錯誤,叫我去幫忙搞,搞了半天,才搞定,到底是什么問題
原來她將IIS中"默認web站點"刪除,自己新建了一個站點,運行正常,就是無法編譯,新建也不成,出現非1.1版本錯誤,以前出現錯誤是因為,服務器使用了固定IP,而管理員將屬性中的IP地址為指定的ip地址!現在也很有必要做個總結!
步驟嘗試如下:
1.當然先確定一下,是否真的裝了1.1的版本,查看路徑 C:/WINNT/Microsoft.NET/Framework/v1.1.4322
2.也是很多人都知道,重新安裝 aspnet_regiis ,怎么安裝,就不多說了,網上很多!
3.重啟IIS,重新啟動ASP.NET服務程序
4.如果你的Web服務器使用了固定IP:確定你的"Internet信息服務"中使用的是"默認web站點"并且其屬性中的IP地址為"(全部未分配)",而不是你己指定的ip地址。可以修改"默認web站點"的名字,但不要刪除,一旦刪除,只要在新建的時候,名稱嚴格為"默認web站點"也可以恢復
5.如果你的IE使用了代理的話,把 Bypass Proxy Server for local adresses勾上
6.如果你本身已經有個web站點,請把它卸載掉,不用重新安裝vs.net,只要重新安裝下iis也可以。
7.如果還是不行,那可真沒什么辦法了,那就重裝IIS,FRAMWORK,.NET,操作系統吧
最后說一個安全問題,盡量不要把IIS指向默認路徑C:/Inetpub/wwwroot 這個路徑很容易受攻擊,最好重新指向一個新的路徑,然后把wwwroot文件夾刪除掉,需要用戶上傳文件的,千萬要阻止上傳".HTA"文件,做好訪問網站的權限,屏蔽執行HTA文件,做好數據庫備份工作!
又是工作中的一點經驗,供大家參考,少走彎路!
確實是Bug
1.你的Web服務器使用了固定IP:確定你的"Internet信息服務"中使用的是"默認web站點"并且其屬性中的IP地址為"(全部未分配)",而不是你己指定的ip地址。然后在回到VS.NET中重試,或許可以解決。
2.以上方法不能解決問題時,考慮MSDN中的解決辦法,如下:
Visual Studio .NET 無法確定在 Web 服務器計算機上運行的是否為 ASP.NET 1.1 版。該錯誤可能在幾種不同情況下發生。請檢查是否屬于以下情況:
a, 確保 .NET Framework 1.1 版安裝在 Web 服務器計算機上。有關詳細信息,請參見 Visual Studio .NET 軟件要求。
b, 如果 ASP.NET 已安裝在 Web 服務器計算機上,但仍然遇到此錯誤,則可能是配置問題。為了糾正有問題的安裝或配置,可以使用名為 aspnet_regiis 的 ASP.NET 實用工具。在類似如下所示的路徑中可以找到此命令行實用工具:
C:/WINDOWS/Microsoft.NET/Framework/v1.1.nnnn/
其中 nnnn 表示四位內部版本號。在最高版本號下查找。使用 /i 開關運行該實用工具:
aspnet_regiis /i
提示 您可以從命令的正確目錄中直接打開該命令窗口。從 Windows 的"開始"菜單,指向"程序"、"Visual Studio .NET 2003"、"Visual Studio .NET 工具",然后選擇"Visual Studio .NET 命令提示"。在窗口打開后,鍵入 aspnet_regiis /i。
不需要吧,在程序的vs.net的vs.net tool 的 vs.net command prompt下
輸入:
aspnet_regiis -r
問題就可以解決了。
仔細的看看 aspnet_regiis 的參數的意義
查詢參數 aspnet_regiis /all
會列出所有的參數
---------------------------------------------
1、當站點主目錄沒有創建應用程序:
通過FP擴展+虛擬目錄的方式來建立WEBAPP,步驟如下:
(1)、右擊站點---所有任務--配置服務器擴展
(2)、建立虛擬目錄***,并使其配置應用程序
(3)、在VS中建立WEB項目,名稱也為***
(4)、通過通過FP擴展來建立WEB
2、當站點主目錄創建應用程序:
第一種方法--FP擴展:
(1)、右擊站點---所有任務--配置服務器擴展
(2)、在VS中建立WEB項目,名稱自己隨便定
(3)、通過通過FP擴展來建立WEB
第二種方法--WEB共享:
(1)在IIS中將IP地址改為全部未分配
(2)將地址改為127.0.0.1或LOCALHOST
3、還不能建立時請試用下列方法:
(1)“站點”---右鍵---“屬性”---“所有任務”---“重新計算 Web 上的超鏈接”
然后在vs.net下通過frontpage服務器擴展創建
(2)指示要通過文件共享直接訪問 Web 服務器上的項目文件;不需要在該服務器上安裝 FrontPage 服務器擴展。
安裝 Visual Studio .NET 時,將創建一個“VS Developers”(VS 開發人員)用戶組,并授予該用戶組對 inetpub/wwwroot 文件夾的讀/寫權限。想使用計算機上的文件共享創建 Web 項目的任何用戶都需要添加到“VS Developers”(VS 開發人員)用戶組中。新建的“VS Developers”(VS 開發人員)組沒有任何成員,所以,即使是安裝 Visual Studio 的用戶,也必須手動將自己添加到這個組中。
如果不希望將 Visual Studio 安裝到服務器上,可以通過 Visual Studio 安裝程序僅安裝服務器組件,以創建“VS Developers”(VS 開發人員)組。
(3)win2003下:
在VS.NET中,為了測試URL和UNC, VS.NET會在目錄下面生成一個.tmp文件,然后通過HTTP對該文件發出請求。但是在IIS 6中,出于安全考慮,tmp文件沒有注冊,默認情況下,會被block然后產生HTTP 404錯誤。
解決這個問題,請您參閱下面的方法:
1。打開IIS管理器。
2。右鍵點擊"Default Web Site"并選擇Properties.
3。 點擊"Http Header".
4。 點擊"MIME Types".
5。 點擊“New”。
6。 在Extension中,輸入".tmp". (不需要引號)
7。 在MIME Type中,輸入 "Temp". (不需要引號)
還有一種解決方法,您可以使用下面的命令行:
%systemdrive%/inetpub/adminscripts/adsutil.vbs set w3svc/1/root/MimeMap .tmp,temp
在創建Web Application時,VS.Net需要在創建路徑下創建后綴名為.tmp的臨時文件。
當VS.Net創建好項目之后,就會以HTTP的方式向Web文件夾尋求項目文件,同時也尋求臨時文件。由于windows2003在某些安裝步驟下的IIS沒有把.tmp文件設置為MIME類型,所以IIS向VS.Net返回了未知文件類型的錯誤,即找不到文件。所以VS.Net認為你的IIS路徑設置不對。
未指定的錯誤
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Runtime.InteropServices.COMException: 未指定的錯誤
試圖運行項目時出錯:無法在 WEB 服務器上啟動調試。您沒有調試該服務器的權限。
驗證您是服務器上“Debugger Users”組的成員。
1.作為 Administrator 登錄。
2.運行 Administrator tools 中的 Computer management。
3.選擇 Local users and groups/groups 節點。
4.雙擊右邊窗格中的 Debugger Users 組。
5.單擊 Debugger users properties 對話框中的 Add 按鈕。
6. 鍵入用戶帳戶并單擊 OK。
設備未就緒。 說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.IO.IOException: 設備未就緒。
posted on 2006-03-23 11:15 DotNet菜園 閱讀(1843) 評論(1) 編輯 收藏 引用 收藏至365Key 所屬分類: AspNet
調試ASP.NET網站IIS環境問題解決方法匯總 - 客陶 - 漂流瓶的個人主頁
Feedback
# re: (轉帖)asp.net調試錯誤解決方法收集(1) 2006-04-10 17:58 21
private void PrepareConnection()
{
string ConnStr=System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"];
connection=new SqlConnection(ConnStr);
string strSql="select * from Questions";
command = connection.CreateCommand();
command.CommandText= strSql;
command.CommandType=CommandType.Text;
adapter= new SqlDataAdapter();
adapter.SelectCommand = command;
commandBuilder = new SqlCommandBuilder(adapter);
adapter.UpdateCommand=commandBuilder.GetUpdateCommand();
adapter.DeleteCommand=commandBuilder.GetDeleteCommand();
adapter.InsertCommand=commandBuilder.GetInsertCommand();
}
為什么出現:
對于不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.InvalidOperationException: 對于不返回任何鍵列信息的 SelectCommand 不支持 UpdateCommand 的動態 SQL 生成。
源錯誤:
行 39: adapter.SelectCommand = command;
行 40: commandBuilder = new SqlCommandBuilder(adapter);
行 41: adapter.UpdateCommand=commandBuilder.GetUpdateCommand();
行 42: adapter.DeleteCommand=commandBuilder.GetDeleteCommand();
行 43: adapter.InsertCommand=commandBuilder.GetInsertCommand();
This application is currently offline解決辦法
某天Visual Studio 2005運行網頁時,突然彈出以下癥狀:
This application is currently offline. To enable the application, remove the app_offline.htm file from the application root directory
原本以為是VS2005出錯了,關閉后重新打開運行,依然沒有出現頁面,還是上面的那句話。很奇怪,明明昨天運行還沒有問題。上文搜一搜,發現不少人都碰到這個問題。其實解決辦法很簡單,上面錯誤提示的后半句就是解決辦法了。
原來這是.NET的一個網站暫停機制。如果你的網站需要維護或更新暫停一段時間,你可以在站點的根目錄下創建一個app_offline.htm文件,當游客訪問你網站的時候,會自動指向該offline頁面,這也是一個不錯的技巧應用。
解決方法:刪除根目錄下的app_offline.htm文件,重新運行調試網頁,一切正常!原來懂E文就可以更容易理解更多問題了,要更加好地充充電。