Bobby

聚沙成塔 集腋成裘
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Visual Studio.NET错误收集(一)

Posted on 2006-03-07 20:51  Bobby  阅读(422)  评论(0编辑  收藏  举报

第一种:
如果你使用的是WinXP或者Win2kPro版的系统,你不会出现这个问题,因为你只能把网站放在C:\intpub\wwwroot目录下,这个目录默认的是http://localhost,是本地站点目录,不需要任何设置就可以调试。如果你是Win2kServer版本,想尽快解决这个问题,你使用IIS管理器把你的解决方案目录变成localhost的一个虚拟目录即可,立即可以进行调试,不过你必须用管理员身份登录。

第二种:
使用系统W:Win2kServer,使用IIS直接定义的网站。步骤如下:
1.必须把你做的网站的本地目录所在的逻辑分区转换成NTFS分区,否则不能使用asp.net的调试功能。
在Dos模式下,键入命令
convert [分区号,如D:] /fs:ntfs
然后系统说必须在下次启动后进行转换,然后重新启动,你的存放网站的硬盘分区就变成NTFS了。
2. 打开IIS管理器,选择你的网站,弹出快捷菜单,选择“所有任务”下的“删除服务器扩展”
3. 删除完毕以后,同样打开此站点的快捷菜单,选择“所有任务”下的“配置服务器扩展”,除了不要定义管理员邮件外,其他一切默认。安装服务器扩展后,会在你的用户管理里面添加几个用户。
4. 打开控制面板-->管理工具-->计算机管理
选择用户管理,把你登录用户名(如果你是自己的计算机,那么一般使用Administrator登录),加入如下几个组:
Debugger Users
VS Developers
[你的网站IP地址]Admins
[你的网站IP地址]Authors

另外把ASPNET用户加入如下组(只能用在开发计算机上):
Debugger Users
VS Developers
[你的网站IP地址]Admins
[你的网站IP地址]Authors
Administrators
5. 关闭用户管理窗口,关闭控制面板。打开IIS管理器,打开你的网站的属性窗口.
在“操作员”页上加入:
Administrator
计算机名/ASPNET
计算机名/VS Developers
计算机名/Debugger Users
[此网站IP地址]Adminis
[此网站IP地址]Authors

在目录访问和安全性-->匿名访问和验证控制-->编辑-->集成Windows验证

5. 关闭站点属性窗口,在此站点的快捷菜单中选择 所有任务-->权限向导
选择从模板选择配置,方案选择Public Web Site,配置好后关闭IIS管理器。

6. 打开Vs.Net,打开你的项目属性窗口,在“配置属性-->调试-->调试器,选择asp.net调试。
  在“通用属性”-->”Web设置”下选择“FrentPage”
  确定后退出VS.net.

7.查看IIS属性,查找ASP.NET选项,选择要使用的ASP.NET版本.

 

 您是否正在运行一个允许 Visual Studio 调试器自动附加到 Web 应用程序的 Windows 版本?如果不是,则需要启动应用程序而不调试,然后手动附加到它.
您的 Web 应用程序是否具有 Web.config 文件?
Web.config 文件是否通过将 debug 属性设置为 true 而启用了调试模式?有关更多信息,请参阅 ASP.NET 应用程序中的调试模式。
Web.config 是否包含任何语法错误?您可以通过运行 Web 应用程序而不调试来检查是否存在语法错误。(从“调试”菜单中,选择“开始执行(不调试)”。)如果在 Web.config 中存在语法错误,则会显示详细信息。
您是否是“调试器用户”(Debugger Users) 组的成员?如果您作为管理员登录,则管理员是否在该组中?
您是否是通过指定特定的 IP 地址(如 100.20.300.400)而创建了项目?调试 Web 服务器要求 NTLM 身份验证。默认情况下,IP 地址被假定为 Internet 的一部分,而在 Internet 上不进行 NTLM 身份验证。若要更正这一问题:
创建项目时,指定 Intranet 上计算机的名称。
-或-
将 IP 地址 (http://100.20.300.400) 添加到您的计算机上的受信任站点列表中。(从 Internet Explorer 的“工具”菜单中,选择“Internet 选项”,然后选择“安全”选项卡)。
运行 IIS 服务器的计算机是否已安装了 Visual Studio .NET 远程组件?
IIS 是否是在安装了 Visual Studio .NET 之后才被安装在本地计算机(即运行 Visual Studio .NET 的计算机)上的?IIS 应在安装 Visual Studio .NET 之前安装。如果它是后来安装的,则可能需要修复 .NET 框架。

是否正确地指定了项目起始页的 URL?扩展名和项目目录是否正确?
是否正确地设置了 IIS 安全设置?若要验证这一点,请检查“默认 Web 站点”设置。
检查“默认 Web 站点”的 IIS 安全设置
1. 从“开始”菜单中,依次选择“程序”和“管理工具”,然后单击“Internet 服务管理器”(Windows 2000) 或“Internet 信息服务”(Windows XP)。
2. 在“Internet 服务管理器”或“Internet 信息服务”对话框中,单击您的计算机的树控件 (Tree Control)。在“Web 站点”文件夹中,找到“默认 Web 站点”。
3. 右击“默认 Web 站点”并选择“属性”。
4. 在“默认 Web 站点属性”窗口中,选择“目录安全性”选项卡并单击“编辑”。
5. 在“身份验证方法”对话框中,选择“匿名访问”和“集成的 Windows 身份验证”(如果尚未选择的话)。
6. 单击“确定”以关闭“Internet 服务管理器”或“Internet 信息服务”对话框。
7. 单击“确定”。
对于 ATL Server 应用程序,请验证 DEBUG 谓词是否与您的 ISAPI 扩展相关联。
对于 ASP.NET 应用程序,请确保应用程序的虚拟文件夹具有在“Internet 服务管理器”或“Internet 信息服务”中设置的“应用程序名称”。
为 Web 应用程序指定虚拟文件夹
1. 从“开始”菜单中,依次选择“程序”和“管理工具”,然后单击“Internet 服务管理器”(Windows 2000) 或“Internet 信息服务”(Windows XP)。
2. 在“Internet 服务管理器”或“Internet 信息服务”对话框中,单击您的计算机的树控件 (Tree Control)。在“Web 站点”文件夹中,找到此 Web 应用程序。
3. 右击“默认 Web 站点”并选择“属性”。
4. 在“默认 Web 站点属性”窗口中,选择“目录”选项卡。
5. 在“应用程序设置”下,单击“创建”。
应用程序名称即出现在此框中。
6. 单击“确定”关闭“属性”对话框。
7. 单击“确定”以关闭“Internet 服务管理器”或“Internet 信息服务”对话框。
远程服务器上的 Web 应用程序
如果 Web 应用程序位于远程服务器上,请检查以下问题:
是否运行了正确的安装程序以便在服务器上安装 ASP.NET/ATL Server 和远程调试器组件?
您是否是服务器上的“调试器用户”(Debugger Users) 组的成员?您是否具有调试在系统帐户下运行的进程所必需的访问特权?
根据安全设置的不同,ASP.NET 应用程序可能在 inetinfo.exe(IIS 进程)下运行,也可能在 ASP 辅助进程 aspnet_wp.exe 下运行。默认情况下,aspnet_wp.exe 进程作为 SYSTEM 运行。若要调试在 aspnet_wp.exe 下运行的应用程序,您需要具有管理员特权或为 aspnet_wp.exe 编辑 machine.config 文件,以便 aspnet_wp.exe 在用户帐户下运行。若要调试在 inetinfo.exe 下运行的应用程序,您必须是运行 inetinfo.exe 的计算机上的管理员。
根据安全设置的不同,ATL Server 应用程序可能在 inetinfo.exe 下运行,也可能在 ATL 辅助进程 dllhost.exe 下运行。若要调试在 inetinfo.exe 下运行的应用程序,您必须是运行 inetinfo.exe 的计算机上的管理员,或者使用公共语言运行库应用程序设置将 dllhost 配置为作为特定用户运行。
您是否正在使用“终端服务器”尝试调试远程计算机上的 Web 应用程序?在 Windows XP 下,支持使用“终端服务器”对本机 Web 应用程序进行远程调试。而在 Windows 2000 或 Windows NT 下则不支持。
存储在 Visual SourceSafe 中并使用 FrontPage 服务器扩展的 Web 应用程序
如果 Web 应用程序存储在 Visual SourceSafe 中并且使用 FrontPage 服务器扩展作为它的 Web 访问模式,请检查以下问题:
Visual SourceSafe 是否与 FrontPage 服务器/Web 服务器位于同一台计算机上?如果是,则可以使用“集成身份验证”进行调试。(若要检查“集成身份验证”设置,请参阅此过程以检查前面的“默认 Web 站点”的 IIS 安全设置。)
解决这一问题的另一种方法是将 Web 访问模式从 FrontPage 更改为文件共享 (File Share)。
将 Web 访问模式更改为文件共享 (File Share)
1. 在解决方案资源管理器中,右击项目名称,然后从快捷菜单中选择“属性”。
2. 在“<Project> 属性页”对话框中,打开“通用属性”文件夹,然后选择“Web 设置”。
3. 在“Web 服务器连接”下,单击“Web 访问模式”,然后从列表框中选择“文件共享”。
4. 单击“确定”以关闭“<Project> 属性页”对话框。
手动附加
如果按照这些疑难解答步骤执行了相应操作,而在开始调试时仍然收到错误信息,则可能需要尝试通过手动附加来调试应用程序。
手动附加
1. 启动应用程序而不调试。(从“调试”菜单中,选择“开始执行(不调试)”。)
2. 附加到适当的 IIS 进程或辅助进程。默认情况下,对于 ATL Server 应用程序为 inetinfo.exe;对于 ASP.NET 应用程序为 aspnet_wp.exe。使用下面的过程来确定 ASP.NET 或 ATL Server 应用程序在哪个进程下运行。
检查 ASP.NET 应用程序在哪个进程下运行
1. 使用 Visual Studio .NET 或其他文本编辑器打开应用程序的 machine.config 文件。
2. 找到下面的进程模型属性:
enable
如果 enable 设置为 TRUE,则应用程序在 aspnet_wp.exe 下运行(这也是默认设置。)
如果 enable 设置为 FALSE,则应用程序在 inetinfo.exe 下运行。
检查 ATL Server 应用程序在哪个进程下运行
1. 在解决方案资源管理器中,右击项目名称,然后从快捷菜单中选择“属性”。
2. 在“<Project> 属性页”对话框中,打开“Web 部署”文件夹,然后选择“常规”。
3. 查看“应用程序保护”设置。
如果此设置为“低(IIS 进程)”,则应用程序在 inetinfo.exe 下运行。
如果此设置为“中等(池)”,则应用程序在 dllhost.exe 进程下运行(与其他放入池中的 ATL Server 应用程序相同)。
如果此设置为“高(独立)”,则应用程序在 dllhost.exe 进程下运行(与其他 ATL Server 应用程序不同)。
4. 单击“确定”以关闭“<Project> 属性页”对话框。

 

1:确认在“配置属性”中的“启用ASP.NET调试"为"True"

2:确认你的"web.config"中的"debug=true"

3:若你安装过wind2000 SP4后,则要在命令行执行"regsvr32 i aspnet_isap.dll"

4:在IIS里查看站点信息,选中"目录安全性",里面有"匿名访问和身份验证控制",再点击"编辑..",确认"集成Windows身份验证"选项被选中

5:在IE选项->"安全设置"->"自定义级别"里有"用户验",确认选中"自动使用当前用户名和密码登录"

6:运行C:\WINNT\Microsoft.NET\Framework\v1.0.3705\aspnet_regiis.exe -i

7:控制面板--管理工具--计算机管理--本地用户和组--用户,双击ASPNET用户,为其隶属于添加Administrators用户

http://support.microsoft.com/kb/824643/微软官方关于此问题的资料