天天看点

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该问题也可以解决  

继续阅读