首页 > 编程 > .NET > 正文

调试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文就可以更容易理解更多问题了,要更加好地充充电。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表