Visual studio 2003常見錯誤,原因及解決方法

發布時間:2007年08月27日      浏覽次數:3236 次
【錯誤提示】
異常詳細信息: System.Net.WebException: 請求因 HTTP 狀态 401 失敗:Unauthorized。
源錯誤:
行 35: [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/HelloWorld", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
行 36: public string HelloWorld() {
行 37: object[] results = this.Invoke("HelloWorld", new object[0]);
行 38: return ((string)(results[0]));
行 39: }
【原因分(fēn)析】
1、用的是windows2003,.net framework1.1,.net2003
2、應該有權限訪問,因爲原來用程序是可以的,現在用IE 去(qù)訪問還是可以的,但程序不行;
3、iis 沒有什麽異常,從iis 裏面直接浏覽調用web 方法沒有問題;
4、認證方式沒有改變一(yī)直用的都是windows,改成none 也不行;
5、一(yī)開(kāi)始就安裝了WSE1.1,是可以的,後來升級到WSE2.0,就不行了,然後卸載了WSE2.0,裝上WSE2.0 SP1 還是不行,後來又(yòu)卸載掉WSE2.0 SP1 還是不行,再重裝WSE2.0 SP1 還是不行,不得其解,現在試試卸載掉WSE2.0 SP1 重新用WSE1.1 看行不行,請各位多多幫忙啊。
什麽是WSE
【解決方法】
在調用Web Service方法前,加上一(yī)句 System.Net.CredentialCache.DefaultCredentials
即:
myWS.Credential =System.Net.CredentialCache.DefaultCredentials;
myWS.wsMethod();
【錯誤提示】
未将對象引用設置到對象的實例。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中(zhōng)導緻錯誤的出處的詳細信息。
異常詳細信息: System.NullReferenceException: 未将對象引用設置到對象的實例。
源錯誤:
行 39:
行 40: QID=Request.QueryString["QID"];
行 41: title=Server.UrlDecode(Request.QueryString["title"]).ToString();
行 42: strOperation="select * from AD_QAnswer where QID="+QID;
行 43: strTableName="Answer";

源文件: d:\evenjoint\89178\web\adcms\agent\qa\adminqadetail.aspx.cs 行: 41
【原因】變量title未賦初值,即Server.UrlDecode(Request.QueryString["title"]).ToString()執行的結果爲 null
【錯誤提示】
System.FormatException: 索引(從零開(kāi)始)必須大(dà)于或等于零,且小(xiǎo)于參數列表的大(dà)小(xiǎo)。
【原因】索引個數與參數個數不同,如下(xià):11個索引,10個參數
string str=String.Format("INSERT INTO AD_CARVEOUT VALUES (’{0}’,’{1}’,’{2}’,’{3}’,’{4}’,’{5}’,’{6}’,’{7}’,’{8}’,’{9}’,’{10}’)",this.UserName,this.Name,this.Sex,this.Age,this.Tel,this.Email,this.Area,this.Money,this.Trade,this.ProjectSummary);
【錯誤提示】
trueSystem.Data.SqlClient.SqlException: 第 1 行: ’,’ 附近有語法錯誤。
【原因】列類型爲char,但在連接數據庫時隻使用了該列的變量,沒有爲變量加引号
string str=String.Format("INSERT INTO AD_CARVEOUT VALUES ({0},’{1}’,’{2}’,’{3}’,’{4}’,’{5}’,’{6}’,’{7}’,’{8}’,’{9}’,’{10}’)",this.UserName,this.Name,this.Sex,this.Age,this.Tel,this.Email,this.Area,this.Money,this.Trade,this.ProjectSummary);
注意:{0}沒加單引号
【錯誤提示】
trueSystem.Data.SqlClient.SqlException: 數據庫 ’AD_CMS’ 的日志(zhì)已滿。請備份該數據庫的事務日志(zhì)以釋放(fàng)一(yī)些日志(zhì)空間。
【原因】日志(zhì)滿了,清空辦法:
purpleazi 發表于 2006-7-9 22:18:20
1:截斷事務日志(zhì):
BACKUP LOG 數據庫名 WITH NO_LOG
2:清空日志(zhì)
DUMP TRANSACTION 庫名 WITH NO_LOG
再:
企業管理器--右鍵你要壓縮的數據庫--所有任務--收縮數據庫--收縮文件--選擇日志(zhì)文件--在收縮方式裏選擇收縮至XXM,這裏會給出一(yī)個允許收縮到的最小(xiǎo)M數,直接輸入這個數,确定就可以了
3: 删除LOG
1:分(fēn)離(lí)數據庫 企業管理器->服務器->數據庫->右鍵->分(fēn)離(lí)數據庫
2:删除LOG文件
3:附加數據庫 企業管理器->服務器->數據庫->右鍵->附加數據庫
此法生(shēng)成新的LOG,大(dà)小(xiǎo)隻有500多K
再将此數據庫設置自動收縮
或用代碼:
下(xià)面的示例分(fēn)離(lí) pubs,然後将 pubs 中(zhōng)的一(yī)個文件附加到當前服務器。
EXEC sp_detach_db @dbname = ’pubs’
EXEC sp_attach_single_file_db @dbname = ’pubs’,
@physname = ’c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf’
4: 如果想以後不讓它增長
企業管理器--服務器--右鍵數據庫--屬性--事務日志(zhì)--将文件增長限制爲xM(x是你允許的最大(dà)數據文件大(dà)小(xiǎo))
--SQL語句的設置方式:
alter database 數據庫名 modify file(name=邏輯文件名,maxsize=20)
5.設置爲自動收縮
企業管理器--服務器--右鍵數據庫--屬性--選項--選擇"自動收縮"
【錯誤提示】
說明: 在分(fēn)析向此請求提供服務所需資(zī)源時出錯。請檢查下(xià)列特定分(fēn)析錯誤詳細信息并适當地修改源文件。
分(fēn)析器錯誤信息: 未能加載類型“adcms.agentNew.test.gonggao2”。
源錯誤:
行 1: <%@ Page language="c#" Codebehind="gonggao2.aspx.cs" AutoEventWireup="false" Inherits="adcms.agentNew.test.gonggao2" %> 行 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 行 3: <HTML>

源文件: D:\Evenjoint\89178\web\adcms\agentnew\test\gonggao2.aspx 行: 1
【原因】後置代碼沒有聲明引用的命名空間
using my_classLibrary;
【錯誤提示】
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中(zhōng)導緻錯誤的出處的詳細信息。
異常詳細信息: System.Data.SqlClient.SqlException: 将截斷字符串或二進制數據。語句已終止。
源錯誤:
行 49: SqlCommand cmd=new SqlCommand(sql,con); 行 50: con.Open(); 行 51: cmd.ExecuteNonQuery(); 行 52: con.Close(); 行 53: }

源文件: D:\Evenjoint\89178\web\ad_component\ADConnection.cs 行: 51
【原因】輸入的字段長度超過了數據表中(zhōng)定義的長度.
【錯誤提示】 說明: 在分(fēn)析向此請求提供服務所需資(zī)源時出錯。請檢查下(xià)列特定分(fēn)析錯誤詳細信息并适當地修改源文件。
分(fēn)析器錯誤信息: 未能加載類型“woall.getPWD”。
源錯誤:
行 1: <%@ Page language="c#" Codebehind="getPWD.aspx.cs" AutoEventWireup="false" Inherits="woall.getPWD" %> 行 2: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 行 3: <HTML>

源文件: D:\work\woall_last\getpwd.aspx 行: 1
“/”應用程序中(zhōng)的服務器錯誤。
--------------------------------------------------------------------------------
分(fēn)析器錯誤

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
“/adcms”應用程序中(zhōng)的服務器錯誤。
--------------------------------------------------------------------------------
将截斷字符串或二進制數據。語句已終止。

“/”應用程序中(zhōng)的服務器錯誤。
--------------------------------------------------------------------------------
分(fēn)析器錯誤

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
【原因】沒有編譯後台代碼,直接輸網址想查看結果.編譯下(xià)就好了.
【錯誤提示】說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中(zhōng)導緻錯誤的出處的詳細信息。
異常詳細信息: System.IndexOutOfRangeException: 索引 0 不是非負數且小(xiǎo)于總行數。
源錯誤:
行 747: { 行 748: string queryUserid = string.Format(@"select contentOwnerID from ad_content where contentid={0}",ddlAD.SelectedItem.Value); 行 749: tempUserid = Convert.ToInt32(ADCommon.CreateDataSet(queryUserid,null).Tables[0].DefaultView[0][0].ToString()); 行 750: tempUserType = 3; 行 751: }

源文件: d:\evenjoint\adcms\admin\adleavewordmanager.aspx.cs 行: 749
堆棧跟蹤:
[IndexOutOfRangeException: 索引 0 不是非負數且小(xiǎo)于總行數。] System.Data.DataView.GetElement(Int32 index) +43 System.Data.DataView.get_Item(Int32 recordIndex) +5 adcms.admin.adleavewordmanager.btnExportByDate_Click(Object sender, EventArgs e) in d:\evenjoint\adcms\admin\adleavewordmanager.aspx.cs:749 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33 System.Web.UI.Page.ProcessRequestMain() +1292

【原因】
ADCommon.CreateDataSet(queryUserid,null).Tables[0].DefaultView[0][0]爲空,不能轉化爲string.
【錯誤提示】 說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中(zhōng)導緻錯誤的出處的詳細信息。
異常詳細信息: System.Data.SqlClient.SqlException: SQL Server 不存在或訪問被拒絕。
源錯誤:
行 2427: cmd.CommandType = CommandType.StoredProcedure; 行 2428: 行 2429: connection.Open(); 行 2430: SqlCommandBuilder.DeriveParameters(cmd); 行 2431: connection.Close();

“/”應用程序中(zhōng)的服務器錯誤。
--------------------------------------------------------------------------------
索引 0 不是非負數且小(xiǎo)于總行數。

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
“/”應用程序中(zhōng)的服務器錯誤。
--------------------------------------------------------------------------------
SQL Server 不存在或訪問被拒絕。

【原因】http://www.blogcn.com/u/13/35/internat/index.html (有圖)
【錯誤提示】Automation 服務器不能創建對象
【解決方法】
開(kāi)始--運行--regsvr32 scrrun.dll
訪問某些網站的時候,如果出現"Automation 服務器不能創建對象"的錯誤提示框,表明網頁内的對象需要scrrun.dll的支持.
不用重新安裝操作系統和vs.net
有些腳本需要微軟的 MSXML 控件才能進入。當使用 IE 5 以上版本的缺省安全模式時,會提示是否接受 MSXML 控件,如果接受,MSXML 将自動安裝到您的機器上(得等上幾分(fēn)鍾)。如果自動安裝不成功,可以自行下(xià)載和安裝 MSXML 3.0。
如果安裝 MSXML 3 後仍然出現 ’Automation 服務器不能創建對象’ 錯誤,是因爲您的機器禁止了所有的 ActiveX, 一(yī)般将 IE 的安全模式設爲“中(zhōng)”即可。
【錯誤提示】
NT AUTHORITY\NETWORK SERVICE
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中(zhōng)導緻錯誤的出處的詳細信息。
異常詳細信息: System.UnauthorizedAccessException: NT AUTHORITY\NETWORK SERVICE
ASP.NET 未被授權訪問所請求的資(zī)源。請考慮授予 ASP.NET 請求标識訪問此資(zī)源的權限。ASP.NET 有一(yī)個在應用程序沒有模拟時使用的基進程标識(通常,在 IIS 5 上爲 {MACHINE}\ASPNET,在 IIS 6 上爲網絡服務)。如果應用程序正在通過 <identity impersonate="true"/> 模拟,則标識将爲匿名用戶(通常爲 IUSR_MACHINENAME)或經過身份驗證的請求用戶。
若要授予 ASP.NET 對文件的寫訪問權,請在資(zī)源管理器中(zhōng)右擊該文件,選擇“屬性”,然後選擇“安全”選項卡。單擊“添加”添加适當的用戶或組。突出顯示 ASP.NET 帳戶,選中(zhōng)所需訪問權限對應的框。
【分(fēn)析】
windows2003的.NET用戶是NETWORK SERVICE 而非XP中(zhōng)的asp.net,當ASP.NET對要訪問的文件沒有權限時,就會出現上面的錯誤提示.
【解決方法】
要授予 ASP.NET 對文件的寫訪問權,請在資(zī)源管理器中(zhōng)右擊該文件,選擇“屬性”,然後選擇“安全”選項卡。單擊“添加”添加适當的用戶或組。加入【NETWORK SERVICE】帳戶,選中(zhōng)所需訪問權限對應的框。
【錯誤提示】
無法直接啓動帶有"類庫輸出類型"的項目.
【解決方法】
在有啓動頁的項目上單擊右鍵,選擇“設爲啓動項目”.
一(yī)般來說,隻有web項目和winform項目可以啓動。其它的項目都是dll,不能啓動的。
【錯誤提示】
無法在Web服務器上啓動調試,未将項目配置爲進行調試.
【解決方法】
IIS根目錄不正确.(這種情況爲切換根路徑或移植項目所緻)
其它原因:http://www.cnblogs.com/time-is-life/articles/460348.html
【錯誤提示】
【解決方法】
類型不是Label,改爲LinkButton就OK了.
【錯誤提示】
【解決方法】
在IIS上配置一(yī)下(xià)虛拟目錄就OK了!
開(kāi)發的時候需要虛拟目錄, web.config 文件一(yī)定要放(fàng)在站點根目錄下(xià)或者虛拟目錄下(xià),否則就會出錯
【實現目的】
在windows 2003 上配置smtp服務器,利用MailMessage 發送郵件
【錯誤提示】
服務器拒絕了一(yī)個或多個收件人地址。服務器響應爲: 550 5.7.1 Unable to relay for david.weihw@gmail.com
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中(zhōng)導緻錯誤的出處的詳細信息。
異常詳細信息: System.Runtime.InteropServices.COMException: 服務器拒絕了一(yī)個或多個收件人地址。服務器響應爲: 550 5.7.1 Unable to relay for david.weihw@gmail.com
源錯誤:
行 199: SmtpMail.SmtpServer="127.0.0.1"; 行 200:// SmtpMail.SmtpServer="smtp.163.com"; 行 201: SmtpMail.Send(mail); 行 202: 行 203: ret=true;

源文件: d:\evenjoint\passport\passport_web\test_page.aspx.cs 行: 201
堆棧跟蹤:
[COMException (0x8004020f): 服務器拒絕了一(yī)個或多個收件人地址。服務器響應爲: 550 5.7.1 Unable to relay for david.weihw@gmail.com

【解決方法】
打開(kāi)IIS服務器,默認SMTP虛拟服務器—>屬性
如下(xià)圖:


添加可以通過此虛拟服務進行中(zhōng)繼的計算機。

【測試結果】
成功地通過自己創建的smtp服務器發送郵件。

【錯誤提示】
Visual Studio .NET 無法創建應用程序 <application>。問題很可能是因爲本地 Web 服務器上沒有安裝所需的組件
【解決方法】以下(xià)摘自:CSDN
補充一(yī)點:當出現這種情況時,想想看最近是否修改過IP地址。如果修改過,請改回原來的地址。

1、當修改的地址與原來的同屬一(yī)個網段的話(huà),不會發生(shēng)這種問題。
2、當修改的地址與原來的不屬一(yī)個網段的話(huà),比如,由192.168.0.153改爲192.168.1.153,可能發生(shēng)這種問題。
至少我(wǒ)(wǒ)遇到了這種問題。

【錯誤提示】
說明:
【解決方法】
查詢MSDN , 引用模塊的語法爲:
<add type="classname,assemblyname" name="modulename"/>
哈哈,說的不夠詳細,要在類名前加上“命名空間”,改爲
<add type="SSO.Keeper,SSO" name="Keeper"/> 即可解決問題。
【倡議】
建議大(dà)家把.NET開(kāi)發中(zhōng)遇到的問題總結出來,在這裏共享。感謝Axzhz的支持。
在處理向該請求提供服務所需的配置文件時出錯。請檢查下(xià)面的特定錯誤詳細信息并适當地修改配置文件。
分(fēn)析器錯誤信息: 未能從程序集 SSO 中(zhōng)加載類型 Keeper。
源錯誤:
行 16: <!--<add name="keeper" type="SSO.Keeper"/>--> 行 17: <!--<add type="Keeper,SSO.DLL" name="keeper"/>--> 行 18: <add type="Keeper,SSO" name="Keeper"/> 行 19: </httpModules> 行 20:

源文件: D:\evenjoint\SSO\SSOSite\web.config 行: 18
1、當站點主目錄沒有創建應用程序:
通過FP擴展+虛拟目錄的方式來建立WEBAPP,步驟如下(xià):
(1)、右擊站點---所有任務--配置服務器擴展
(2)、建立虛拟目錄***,并使其配置應用程序
(3)、在VS中(zhōng)建立WEB項目,名稱也爲***
(4)、通過通過FP擴展來建立WEB

2、當站點主目錄創建應用程序:
第一(yī)種方法--FP擴展:
(1)、右擊站點---所有任務--配置服務器擴展
(2)、在VS中(zhōng)建立WEB項目,名稱自己随便定
(3)、通過通過FP擴展來建立WEB
第二種方法--WEB共享:
(1)在IIS中(zhōng)将IP地址改爲全部未分(fēn)配
(2)将地址改爲127.0.0.1或LOCALHOST

3、還不能建立時請試用下(xià)列方法:
(1)“站點”---右鍵---“屬性”---“所有任務”---“重新計算 Web 上的超鏈接”
然後在vs.net下(xià)通過frontpage服務器擴展創建

(2)指示要通過文件共享直接訪問 Web 服務器上的項目文件;不需要在該服務器上安裝 FrontPage 服務器擴展。
安裝 Visual Studio .NET 時,将創建一(yī)個“VS Developers”(VS 開(kāi)發人員(yuán))用戶組,并授予該用戶組對 inetpub\wwwroot 文件夾的讀/寫權限。想使用計算機上的文件共享創建 Web 項目的任何用戶都需要添加到“VS Developers”(VS 開(kāi)發人員(yuán))用戶組中(zhōng)。新建的“VS Developers”(VS 開(kāi)發人員(yuán))組沒有任何成員(yuán),所以,即使是安裝 Visual Studio 的用戶,也必須手動将自己添加到這個組中(zhōng)。
如果不希望将 Visual Studio 安裝到服務器上,可以通過 Visual Studio 安裝程序僅安裝服務器組件,以創建“VS Developers”(VS 開(kāi)發人員(yuán))組。
(3)win2003下(xià):
在VS.NET中(zhōng),爲了測試URL和UNC, VS.NET會在目錄下(xià)面生(shēng)成一(yī)個.tmp文件,然後通過HTTP對該文件發出請求。但是在IIS 6中(zhōng),出于安全考慮,tmp文件沒有注冊,默認情況下(xià),會被block然後産生(shēng)HTTP 404錯誤。
解決這個問題,請您參閱下(xià)面的方法:
1。打開(kāi)IIS管理器。
2。右鍵點擊"Default Web Site"并選擇Properties.
3。 點擊"Http Header".
4。 點擊"MIME Types".
5。 點擊“New”。
6。 在Extension中(zhōng),輸入".tmp". (不需要引号)
7。 在MIME Type中(zhōng),輸入 "Temp". (不需要引号)
還有一(yī)種解決方法,您可以使用下(xià)面的命令行:
%systemdrive%\inetpub\adminscripts\adsutil.vbs set w3svc/1/root/MimeMap .tmp,temp
在創建Web Application時,VS.Net需要在創建路徑下(xià)創建後綴名爲.tmp的臨時文件。
當VS.Net創建好項目之後,就會以HTTP的方式向Web文件夾尋求項目文件,同時也尋求臨時文件。由于windows2003在某些安裝步驟下(xià)的IIS沒有把.tmp文件設置爲MIME類型,所以IIS向VS.Net返回了未知(zhī)文件類型的錯誤,即找不到文件。所以VS.Net認爲你的IIS路徑設置不對。
免責聲明:本站相關技術文章信息部分(fēn)來自網絡,目的主要是傳播更多信息,如果您認爲本站的某些信息侵犯了您的版權,請與我(wǒ)(wǒ)們聯系,我(wǒ)(wǒ)們會即時妥善的處理,謝謝合作!