Visual studio 2003常见错误,原因及解决方法

发布时间:2007年08月27日      浏览次数:2847 次
【错误提示】
异常详细信息: 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: }
【原因分析】
1、用的是windows2003,.net framework1.1,.net2003
2、应该有权限访问,因为原来用程序是可以的,现在用IE 去访问还是可以的,但程序不行;
3、iis 没有什么异常,从iis 里面直接浏览调用web 方法没有问题;
4、认证方式没有改变一直用的都是windows,改成none 也不行;
5、一开始就安装了WSE1.1,是可以的,后来升级到WSE2.0,就不行了,然后卸载了WSE2.0,装上WSE2.0 SP1 还是不行,后来又卸载掉WSE2.0 SP1 还是不行,再重装WSE2.0 SP1 还是不行,不得其解,现在试试卸载掉WSE2.0 SP1 重新用WSE1.1 看行不行,请各位多多帮忙啊。
什么是WSE
【解决方法】
在调用Web Service方法前,加上一句 System.Net.CredentialCache.DefaultCredentials
即:
myWS.Credential =System.Net.CredentialCache.DefaultCredentials;
myWS.wsMethod();
【错误提示】
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: 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: 索引(从零开始)必须大于或等于零,且小于参数列表的大小。
【原因】索引个数与参数个数不同,如下: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’ 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
【原因】日志满了,清空办法:
purpleazi 发表于 2006-7-9 22:18:20
1:截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
2:清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
再:
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
3: 删除LOG
1:分离数据库 企业管理器->服务器->数据库->右键->分离数据库
2:删除LOG文件
3:附加数据库 企业管理器->服务器->数据库->右键->附加数据库
此法生成新的LOG,大小只有500多K
再将此数据库设置自动收缩
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
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: 如果想以后不让它增长
企业管理器--服务器--右键数据库--属性--事务日志--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
5.设置为自动收缩
企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩"
【错误提示】
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
分析器错误信息: 未能加载类型“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 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: 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
【原因】输入的字段长度超过了数据表中定义的长度.
【错误提示】 说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。
分析器错误信息: 未能加载类型“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
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
分析器错误

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
“/adcms”应用程序中的服务器错误。
--------------------------------------------------------------------------------
将截断字符串或二进制数据。语句已终止。

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
分析器错误

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
【原因】没有编译后台代码,直接输网址想查看结果.编译下就好了.
【错误提示】说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.IndexOutOfRangeException: 索引 0 不是非负数且小于总行数。
源错误:
行 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 不是非负数且小于总行数。] 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 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: SQL Server 不存在或访问被拒绝。
源错误:
行 2427: cmd.CommandType = CommandType.StoredProcedure; 行 2428: 行 2429: connection.Open(); 行 2430: SqlCommandBuilder.DeriveParameters(cmd); 行 2431: connection.Close();

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
索引 0 不是非负数且小于总行数。

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
SQL Server 不存在或访问被拒绝。

【原因】http://www.blogcn.com/u/13/35/internat/index.html (有图)
【错误提示】Automation 服务器不能创建对象
【解决方法】
开始--运行--regsvr32 scrrun.dll
访问某些网站的时候,如果出现"Automation 服务器不能创建对象"的错误提示框,表明网页内的对象需要scrrun.dll的支持.
不用重新安装操作系统和vs.net
有些脚本需要微软的 MSXML 控件才能进入。当使用 IE 5 以上版本的缺省安全模式时,会提示是否接受 MSXML 控件,如果接受,MSXML 将自动安装到您的机器上(得等上几分钟)。如果自动安装不成功,可以自行下载和安装 MSXML 3.0。
如果安装 MSXML 3 后仍然出现 ’Automation 服务器不能创建对象’ 错误,是因为您的机器禁止了所有的 ActiveX, 一般将 IE 的安全模式设为“中”即可。
【错误提示】
NT AUTHORITY\NETWORK SERVICE
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: NT AUTHORITY\NETWORK SERVICE
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
【分析】
windows2003的.NET用户是NETWORK SERVICE 而非XP中的asp.net,当ASP.NET对要访问的文件没有权限时,就会出现上面的错误提示.
【解决方法】
要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。加入【NETWORK SERVICE】帐户,选中所需访问权限对应的框。
【错误提示】
无法直接启动带有"类库输出类型"的项目.
【解决方法】
在有启动页的项目上单击右键,选择“设为启动项目”.
一般来说,只有web项目和winform项目可以启动。其它的项目都是dll,不能启动的。
【错误提示】
无法在Web服务器上启动调试,未将项目配置为进行调试.
【解决方法】
IIS根目录不正确.(这种情况为切换根路径或移植项目所致)
其它原因:http://www.cnblogs.com/time-is-life/articles/460348.html
【错误提示】
【解决方法】
类型不是Label,改为LinkButton就OK了.
【错误提示】
【解决方法】
在IIS上配置一下虚拟目录就OK了!
开发的时候需要虚拟目录, web.config 文件一定要放在站点根目录下或者虚拟目录下,否则就会出错
【实现目的】
在windows 2003 上配置smtp服务器,利用MailMessage 发送邮件
【错误提示】
服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for david.weihw@gmail.com
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Runtime.InteropServices.COMException: 服务器拒绝了一个或多个收件人地址。服务器响应为: 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): 服务器拒绝了一个或多个收件人地址。服务器响应为: 550 5.7.1 Unable to relay for david.weihw@gmail.com

【解决方法】
打开IIS服务器,默认SMTP虚拟服务器—>属性
如下图:


添加可以通过此虚拟服务进行中继的计算机。

【测试结果】
成功地通过自己创建的smtp服务器发送邮件。

【错误提示】
Visual Studio .NET 无法创建应用程序 <application>。问题很可能是因为本地 Web 服务器上没有安装所需的组件
【解决方法】以下摘自:CSDN
补充一点:当出现这种情况时,想想看最近是否修改过IP地址。如果修改过,请改回原来的地址。

1、当修改的地址与原来的同属一个网段的话,不会发生这种问题。
2、当修改的地址与原来的不属一个网段的话,比如,由192.168.0.153改为192.168.1.153,可能发生这种问题。
至少我遇到了这种问题。

【错误提示】
说明:
【解决方法】
查询MSDN , 引用模块的语法为:
<add type="classname,assemblyname" name="modulename"/>
哈哈,说的不够详细,要在类名前加上“命名空间”,改为
<add type="SSO.Keeper,SSO" name="Keeper"/> 即可解决问题。
【倡议】
建议大家把.NET开发中遇到的问题总结出来,在这里共享。感谢Axzhz的支持。
在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
分析器错误信息: 未能从程序集 SSO 中加载类型 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,步骤如下:
(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路径设置不对。
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!