“/MMTest”应用程序中的服务器错误。
对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 对于不返回任何键列信息的 SelectCommand 不支持 UpdateCommand 的动态 SQL 生成。
源错误:
|
然后就是最后的更新,当然是用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 应用程序时出现"未将项目配置为进行调试"的错误信息 二、在发送调试 HTTP 请求时出现"无法启动调试"的错误信息 三、调试 ASP.NET 应用程序时出现"访问被拒绝。请检查计算机调试管理器的 DCOM 配置设置。"的错误信息
四、调试 ASP.NET 应用程序时出现"无法在 Web 服务器上启动调试"的错误信息 五、调试 ASP.NET 页时 Visual Studio .NET 调试器不在断点停止 六、无法调试 ASP.NET Web 应用程序 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? |
------------------------
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)中,
1internal static string GetScriptLocation(HttpContext context)
2{
3 string text1 = null;
4 IDictionary dictionary1 = (IDictionary) context.GetConfig("system.web/webControls");
5 if (dictionary1 != null)
6 {
7 text1 = (string) dictionary1["clientScriptsLocation"];
8 }
9 if (text1 == null)
10 {
11 throw new HttpException(HttpRuntime.FormatResourceString("Missing_clientScriptsLocation"));
12 }
13 if (text1.IndexOf("{0}") >= 0)
14 {
15 string text2 = "system_web";
16 string text3 = VersionInfo.IsapiVersion.Substring(0, VersionInfo.IsapiVersion.LastIndexOf(".")).Replace(".", "_");
17 text1 = string.Format(text1, text2, text3);
18 }
19 return text1;
20}
然后再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 上为网络服务)。如果应用程序正在通过
由于在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 上为网络服务)。如果应用程序正在通过
若要授予
<%@ 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”组的成员。
Exception Details: System.Runtime.InteropServices.COMException: 未指定的错误
1.作为 Administrator 登录。
2.运行 Administrator tools 中的 Computer management。
3.选择 Local users and groups\groups 节点。
4.双击右边窗格中的 Debugger Users 组。
5.单击 Debugger users properties 对话框中的 Add 按钮。
6. 键入用户帐户并单击 OK。