Category Archives: asp.net

VS2008无法在断点处停留的解决方案—vs2008 can’t debug, why?—(z)

  from http://blog.csdn.net/downmoon/archive/2009/08/18/4457756.aspx 发现遇到的人还比较多,所以在网上搜了一下,再稍作整理。 VS2008按F5无法在断点处停留,主要有以下几种情况: 1、生成方式是Realse不是Debug。2、调试时到“附加到进程”菜单里看有没有“aspnet_wp.exe”的进程,如果没有,添加。3、控件的事件丢失。这个比较常见。4、右键解决方案的属性里,看生成项里的“生成调试信息”那里是不是FALSE,如果是,改成TRUE。5、想要调试的代码行根本不能调试。这个比较少见。 6、 在vs2008中,工具-> 选项->调试->常规中有个选项,要求源文件与原始版本完全一致,vs2008默认的是选中的,取消试试。 7、还有一种修改注册表的方法 方法 1: 禁用环回检查请遵循以下步骤:1. 单击 开始 , 单击 运行 , 类型 regedit然后单击 确定 。2. 中注册表编辑器, 找到并单击以下注册表项:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa3. 右击 Lsa , 指向 新建 , 然后单击 DWORD 值 。4. 类型 DisableLoopbackCheck然后按 Enter。5. 右击 DisableLoopbackCheck … Continue reading

Posted in asp.net | Leave a comment

Visual Studio 2008和SQL Server 2008安装问题–visual studio 2008 不能更改 安装路径(z)

  安装Visual Studio 2008和SQL Server 2008的时候,更改安装路径是个费事费时的事。。。 如果先装Visual Studio 2008,那么在装SQL Server 2008的时候你会无法安装下去,安装程序会要求你先安装VS的SP1补丁。好,那就打补丁吧~~~但是,当你打好补丁后,你会发现SQL Server 2008的共享目录路径无法更改了。。。因为在打VS SP1的补丁的时候,会有个“Microsoft SQL Server 管理对象”的更新, 而我们又无法修改“Microsoft SQL Server 管理对象”的安装路径,可能就是它把SQL Server 2008的共享目录路径给锁定了。接近2个多GB的数据不得不放在C盘里。。。 没法,那就先装SQL Server 2008吧,但装好之后,你会发现。。。在装Visual Studio 2008的时候,整个Visual Studio 2008的安装路径无法更改了。。。因为在装SQL Server 2008的时候,它会先安装.NET Framework,可能就是这个时候把Visual Studio 2008的安装路径给锁定了。那试着把.NET Framework给删了再装Visual Studio 2008?对不起,不让删,说是重要文件,没法,这个时候要装Visual Studio 2008的话,6点多个GB都只能全在C盘,更汗。。。 … Continue reading

Posted in asp.net | Leave a comment

ASP.NET Memory:如果你的应用已经在生产环境中,那为什么还要debug=true

  问题陈述: 确保在每个asp.net 应用中web.config里面在<compilation>节中的“debug=false”。这个在开发中的缺省设置是true,而且他是我们经常的犯的错误,把这个缺省设置部署到在生产环境中的实际应用。你没有必要设置为true,因为它会导致内存的总开销和低效率。 保留debug=true会导致什么问题? 当设置为true或者false,主要有3个主要的差别 1) asp.net 过期时间 2) 批量编译 3) 代码优化 asp.net 过期时间 当设置为debug=true时,asp.net 请求不会过期,这个会允许你用vs studio来按照你自己的步调来调式程序而不用担心这个请求会突然消失。当然,在生产环境中,超时过期是确保请求不会被卡住,这就是针对第一个的理由。 批量编译 简单来说,当设置为true,我们不会进行批量编译,而false 则会。 这是什么意思? 当一个 aspx、asax、ascx页面第一次被请求,它会被编译成一个dll程序集。这个程序集有一个类似3ks0rnwz.dll的名字(8个字符),里面保存的是实际的ascx、asax或aspx的类(不是code behind 的代码),这个文件在C:WINDOWSMicrosoft.NETFramework版本Temporary ASP.NET Files文件夹的应用程序名下面。 那些code behind的类被编译到程序集的主dll中,他和其他的dll一起放在应用程序的bin目录下,拷贝映射到asp.net 临时目录。 回到3ks0rnwz.dll… 如果我们把debug设置为true,那么会为每个aspx、asax或ascx页面创建一个dll,而且是debug模式的dll,所以如果你有100个页面,那会创建100个程序集,他们会在页面被请求的时候创建。 如果我们把debug设置为false,那会批量编译。意思是第一次请求任何页面的时候,会编译整个应用程序,生成一个很大的dll,这是一个事实,但有些修正,用户控件(ascx页面)会被编译成到一个分开的程序集中,和aspx页面分离,而aspx页面会分组按他们所引用的用户控件分组编译,global.asax也是分开编译。编译也是基于目录的,即如果应用中还有子目录,那子目录也是单独编译,避免同名冲突,因为在可能有相同名字的aspx页面在不同的目录中。但总的来说,相比100个dll,你肯那个只有4 或5个dll。 因为代码都是相同的,所以合在一起的dll合单独的dll的大小并没有很大的差别,但那有一个很大的…总体消耗,对每个dll而言。在dubug模式下编译的dll有一个为了调试而需要的资源消耗。最重要的是,这些dll不会在内存中一个挨着一个排列着,所以,针对有很多的dll的情况,你会开始在虚拟内存中搞出碎片,这将会更难的找到足够的空间来存储托管堆,很有可能会导致内存异常。 另一种情况是,如果设置debug=false,你修改了一个aspx页面,这个页面就需要重新编译,但这不会导致应用程序域(appdomain)重新加载,这样整个程序就不会重新批量编译,单个页面会被单独编译,生成一个dll。所以不要在一个运行着的服务器上经常行的改变你的aspx页面。 在machine.config中有一个配置选项,允许重新编译多少个页面而应用程序域不重启动。缺省的是15,所以在有15个重新编译行为之后,应用程序域会重新启动,这个跟你修改web.config 或bin目录导致应用程序域重启一样。 代码优化 … Continue reading

Posted in asp.net | Leave a comment

asp.net—访问IIS 元数据库失败(aspnet_regiis /r)

运行.aspx文件,出现以下错误: 访问 IIS 元数据库失败。 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.Hosting.HostingEnvironmentException: 访问 IIS 元数据库失败。 用于运行 ASP.NET 的进程帐户必须具有对 IIS 元数据库(如 IIS://servername/W3SVC)的读访问权。有关如何修改元数据库权限的信息,请参见 http://support.microsoft.com/?kbid=267904。 源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: [HostingEnvironmentException: 访问 IIS 元数据库失败。]    System.Web.Configuration.MetabaseServerConfig.MapPathCaching(String siteID, VirtualPath path) +3500426    System.Web.Configuration.MetabaseServerConfig.System.Web.Configuration.IConfigMapPath.MapPath(String siteID, VirtualPath vpath) +9    System.Web.Hosting.HostingEnvironment.MapPathActual(VirtualPath … Continue reading

Posted in asp.net | Leave a comment