ASP.NET编译执行常见错误及解决方法汇总之四

31.不能访问只读文件“****.***"

  解决方案:

  给虚拟目录所对应的文件加上“Everyone/写入”权限即可

32.请求因 HTTP 状态 401 失败:Access Denied解决方法:在iis信息服务器上把匿名访问和允许iis控制密码给勾上

33.有一个无效 SelectedValue,因为它不在项目列表中

  原因:

  (1)在没有绑DropDownList之前就给DropDownList1.SelectedValue 赋值

  (2)dropdownlist中出现了null值

34.无法在“”已存在的情况下创建/影像复制该文件。

  解决方案:重新编译项目(多个project全部重新编译),关闭vs,重新打开,必要时重新启动机子。

35.用户 'C\ASPNET' 登录失败登录失败。

  异常详细信息: System.Data.SqlClient.SqlException: 用户 'COO\ASPNET' 登录失败。

  这是怎么回事啊?

  因为你的程序连接SQLServer的连接字符串是用了windows集成登陆,你可以改成用数据库帐号密码登陆。连接字符串的写法是:

  server=localhost;uid=sa;pwd=xxxx;database=master;

  server是数据库服务器的机器名或者IP,如果是同一台机可以用localhost

  uid是数据库登陆帐号

  pwd是数据库密码

  database是数据库初始owner名称

  答案:

  1、右击桌面我的电脑,选择“管理”,双击打开的“计算机管理”对话框中的“本地用户和组”下的“组” 在右边的窗口中双击“Remote Desktop Users”组,在打开的“Remote Desktop Users”属性对话框中 单击添加,在打开的“添加用户”对话框中单击“高级”,再单击“立即查找”按钮,在“搜索”结果中 双击ASPNET(如果是IIS6.0“NETWOR SERVERCE”)再点击两次确定完成添加“用户”

  2、单击“开始”--“所有程序”--“Microsoft SQL Server”--“企业管理器”在打开的“控制台根目录” 选择相应的数据库,右击该数据库的中的“用户”,选择“新建数据库用户”。在“新建用户”对话 框中点击“登陆名”右侧的下拉列表框,选择“新建”,打开“新建登陆对话框”。点击名称右侧的 省略号按钮,在打开的对话框中将“列出的名称”中选择“本机的名称”,再在下面的名称框中选定“Remote Desktop Users”,然后点击“成员”按钮,双击 ASPNET(如果是IIS6.0“NETWOR SERVERCE”),然后点击确定,在“新建登陆对话 框”中的默认设置的“数据库”选项中选择相应的数据库名称,再在“数据库访问”选项下勾选相应 的数据库点击确定,完成将ASP.net默认的匿名用户添加到SQL

36.用户 'nt authority\network service' 登录失败。

  1> sqlserver 调成sql server 和windows验证模式

  2>

  (以下方法仅供参考)

  第一步:把'NT AUTHORITY\NETWORK SERVICE' 添加到Administrator组中

  我的电脑-->右键-->管理-->本地用户和组

  选择“组”-->双击Administrators-->单击“添加”-->单击“高级”-->单击“立即查找”-->在下面的列表中选择Network Service用户-->两次单击“确定”-->加入。

  第二步 在企业管理器中加入NetWord Service用户

  打开Sql Server企业管理器-->选择数据库实例-->打开“安全性”节点-->选择“登录”-->在右边的列表中单击右键-- >选择“新建登录”-->在“常规”选项卡中单击“名称”旁边的按钮“...”-->选择“Administrators”组-- >单击下面的“成员”按钮-->选择“Network Service”-->单击“添加”按钮-->单击“确定”,返回“新建登录”对话框-->保证身份验证类型为“windows验证” 和“允许访问”-->单击“确定”-->关闭“企业管理器”

  第三步

  重新运行asp.net程序,数据库连接字符串选择windows验证即可。

  3> 在sqlserver中添加帐户或IIS_WPG工作组

  此方法来自于http://www.cnblogs.com/677/archive/2006/11/03/549104.aspx

37.未能加载视图状态。

正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配。例如,当以动态方式添加控件时,在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配。

  原因:viewstate的在Asp.net作用是将控件的状态保存,在下次Post给服务器,服务器进行恢复控件的状态。(控件的状态包括:值和事件。)

  解决方法:

  (1)每一个UserControl的viewstate都改为false

  (2)加入这个:

  this.Page.EnableViewState = false;

  此方法来源于:http://www.cnblogs.com/king_astar/archive/2005/06/01/165763.html

38.“由于启动用户实例的进程时出错,导致无法生成 SQL Server 的用户实例。该连接将关闭。”

  问题原因:

  这是微软的bug,并且微软已经承认,详情如下:http://support.microsoft.com/?id=896613

  出现此错误的条件是:你用过远程桌面连接,并且安装了SQL2005+VS2005,就有很大可能触发这个问题,微软说会在将来的XP SP3里面解决掉这个问题。

  解决:

  http://forums.microsoft.com/MSDN/Sho ... ID=128707&SiteID=1

  如果你看不懂英文,那么我告诉你我的解决办法:

  删除C:\Documents and Settings\[USERNAME]\Local Settings\Application Data\Microsoft\Microsoft SQL Server Data\SQLEXPRESS目录即可,[USERNAME]是Windows用户名,比如说Administrator

  此问题来于http://blog.csdn.net/xiong1000/


39.Server Application Unavailable

  The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.

  Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur.

  解决:

  如果你运行WinXP/IIS 5.1,为了给ASPNET工作进程访问你的web工程文件夹的权力请到网站文件所在的目录,右键一级文件夹,选Security-Add-键入“ASPNET”,点击OK或点击Check Names,如果弹出对话框提示“Name not Found”则应点击Locations改变位置到本机计算机名,点击OK,分配此用户权限为“Full Control”点击OK。

  错误变为:

  You are not authorized to view this page

  You do not have permission to view this directory or page using the credentials you supplied.

  解决:

  在IIS里右键此虚拟目录-Properties-Directory Security-Edit-勾选上Integrated Windows authentication即可。

40.超时时间已到。

超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。

  可能原因如下:并发操作,Connection用后没有关闭,或者因为DataReader连接独占连接。

  解决方法:

  1 修改几个关键页面或访问比较频繁的数据库访问操作,使用DataAdapter和DataSet来获取数据库数据,不要使用DataReader。

  2 在访问数据库的页面上使用数据缓存,如果页面的数据不是经常更新(几分钟更新一次)的话,使用Cache对象可以不用访问数据库而使用缓存中的内容,那么可以大大减少连接数量。

  3 修改代码,把使用Connection对象的地方都在Close()后面加上Dispose()调用。

  4 建议对数据库操作进行大的修改,建立自己的数据库操作代理类,继承System.IDisposable接口,强迫释放资源,这样就不会出现连接数量不够的问题了

posted @ 2012-01-08 17:36  知行派  阅读(412)  评论(0编辑  收藏  举报