⑴ ASP.NET是什么
ASP.NET是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。 指 Active Server Pages(动态服务器页面) ,运行于 IIS(Internet Information Server 服务,是Windows开发的Web服务器)之中的程序 。
………………………………………………
如果对aspnet感兴趣,看看一个大专生怎么自学aspnet到找到工作。
先做个自我介绍,我07年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说 出来献丑了。09年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不 到希望,我就退学了。
退学后我也迷茫,大专都没有毕业,我真的不知道我能干什么,我在纠结着我能做什么。所以辍学后 我一段时间,我想去找工作,因为我比较沉默寡言,不是很会说话,我不适合去应聘做业务。我想应聘 做技术的,可是处处碰壁。
一次偶然的机会,我才听到aspnet这个行业。那天我去新华书店,在计算机分类那边想找本书学习 。后来有个女孩子走过来,问我是不是读计算机的,有没有兴趣学习aspnet,然后给我介绍了一下 aspnet现在的火热情况,告诉我学aspnet多么的有前景,给我了一份传单,aspnet培训的广告。听了 她的介绍,我心里痒痒的,确实我很想去学会一门自己的技术,靠自己的双手吃饭。
回家后,我就上网查了下aspnet,确实是当今比较热门的行业,也是比较好找工作的,工资也是相 对比较高。我就下决心想学aspnet了。于是我去找aspnet培训的相关信息,说真的,我也很迷茫,我 不知道培训是否真的能像他们宣传的那样好,所以我就想了解一段时间再做打算。
后来,我在网络知道看到一篇让我很鼓舞的文章是一个aspnet高手介绍没有基础的朋友怎么自学入 门学aspnet,文章写的很好,包含了如何学习,该怎么学习。他提到一个方法就是看视频,因为看书实 在太枯燥和费解的,很多我们也看不懂。这点我真的很认同,我自己看书往往看不了几页。
我在想,为什么别人都能自学成才,我也可以的!我要相信自己,所以我就想自学,如果实在学不会 我再去培训。
主意一定,我就去搜索aspnet的视频,虽然零星找到一些aspnet的视频,但是都不系统,我是想找 一个能够告诉我该怎么学的视频,一套从入门到精通的视频,一个比较完整的资料,最好能有老师教, 不懂可以请教的。
后来我又找到一份很好的视频,是在IT学习联盟推出的一份视频《零基础aspnet就业班》(喜欢《 零基础aspnet就业班》的可以复制 sina.lt/bsjr 粘贴浏览器地址栏按回车键即打开)
下面介绍下我的学习流程,希望对和我一样完全没有基础的朋友有所帮助。
收到他们寄过来的光盘后,我就开始学习了,由于我没有什么基础,我就从最简单的C#语言视频教程 学起,话说简单,其实我还是很多不懂的,只要重复多看几遍,就能看懂。C#语言我差不多学了一个礼 拜,接下来我就学了winform,sql Server,html/css/javaScript,差不多也就三个礼拜。我每天都在不 停的写一些简单的代码,这样一月后我基本掌握了aspnet的全部基础。
接下来开始学习aspnet高级课程,老师幽默风趣而又轻松的课堂教课,使我发现原来学习aspnet并 不是一件很难的事情。之前我把aspnet基础学得还不错,到了到了aspnet高级部分,我觉不又不是很 难,可能老师太牛了,他能把复杂的问题讲的比较通俗易懂,有些难点的地方我还是连续看了五六次, 把他弄懂。每天下午6点下班后,吃了饭,马上跑回家。看视频,买了几本笔记本。当时,为了编程还花几百元了台二手的台式电脑,配置一般,但编程是足够的。一边看视频,一边记笔记,把重点都记下来,还一边跟着老师敲代码,为了能尽早学会aspnet。每天都坚持学5-6个小时。经常学到晚上一点多才睡觉。星期六,日不用上班,每天7点多起床,学到晚上11,12点。那段时间特别辛苦,特别累。在学习aspnet的三个多月里,除了吃饭睡觉工作,剩余的时间都在学习,因为我知道自己的计算机基础不是很好,也没有学过什么计算机,相对于那些科班的人来说我要比他们付出更多的努力。我只能咬紧牙关,坚持下去,我不能放弃,我要完成我的梦想,我要让我的家人过上好日子。终于三个多月后我把aspnet教程里的内容和项目都学完了,在学项目的过程中我发现项目特别重要,他能把你学过的知识全部联系起来,能更好的理解你所学的知识。还有学习过程中,动手很重要,要经常跟着老师动手敲,动手吧,跟着做,一行一行的跟着敲,再试着加一些自己的功能,按照自己的思路敲一些代码,收获远比干听大的多。 如果遇到暂时对于一些思路不能理解的,动手写,先写代码,慢慢你就会懂了。
于是我就到51job疯狂的投简历,因为我学历的问题,专科没有毕业,说真的,大公司没有人会要我,所以我投的都是民营的小公司,我希望自己的努力有所回报。没有想过几天过后,就有面试了,但是第一次面试我失败了,虽然我自认为笔试很好,因为我之前做了准备,但是他们的要求比较严格,需要有一年的项目经验,所以我没有被选中。
后来陆续面试了几家公司,终于功夫不负有心人。我终于面试上的,是在闵行的一家民营的企业,公司规模比较小,我的职务是aspnet开发程序员,但我也比较满足,开的工资是3500一个月,虽然我知道在上海3500只能过温饱的生活,但是我想我足够了。我至少不用每天都要靠父母养,我自己也能养活自己的。我想只要我继续努力,我工资一定会翻倍的。
把本文写出来,希望能让和我一样的没有基础的朋友有信心,其实我们没有必要自卑,我们不比别人笨,只要我们肯努力,我们一样会成功。
…………………………………………
⑵ aspnet_client 的作用以及存储位置
在虚拟主机的 wwwroot 目录下您会发现有一个名为 aspnet_client 的文件夹,该文件夹中含有集成了 ASP.NET 的“SmartNavigation”功能的 javascript。如果启用 SmartNavigation,网页设计人员就可以在页面以及其他内容之间保持滚动条和元素焦点的位置。
目录 aspnet_client 是虚拟根 Web 应用程序目录,该目录是当您安装 .NET Framework SDK 或 Visual Studio .NET 时在您的计算机上创建的。此文件不占用户空间,请用户在使用网站空间的时候不要删除该文件夹。
例如,随 ASP.NET 附带的脚本文件位于以下位置。
d:\home\ftp用户名/wwwroot/aspnet_client/system_web/<版本编号>/文件
如果安装有 SDK 的多个版本,您将在 aspnet_client/system_web 下看到多个子目录。因为控件库与脚本文件的特定版本相关联,所以部署模式允许控件库的不同版本并行运行。 出现了“aspnet_client”这个文件夹,是干什么的?
这个是文件的路径下还有文件!下面的完整路径:
aspnet_client\system_web\1_1_4322
里面还有三个文件:SmartNav.htm,smartnav.js,webuivalidation.js!
作用是:安装了.net框架之后,就会在网站目录下出现这样的文件夹.用以支持.net环境.1_1_4322表示你的.net framework 的版本为 1.1.4322,里面的3个文件用于为.net验证控件提供脚本支持服务器里面装了.net后,会在服务器上每个网站的目录里面增加这个文件夹的 在生成虚拟站点的时候会自动在根下生成一个名字为aspnet_client的文件夹,你看看是不是这个文件夹没有了?
解决办法重新建一个独立站点,把生成的aspnet_client文件夹复制到这个站点的跟下。
首先确定你安装了iis
然后从命令行进入文件夹C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\
盘符,系统文件夹,版本号可能不一样,看你自己的机子,版本号选择最高的那个文件夹
运行命令aspnet_regiis.exe -i
安装完毕即可使用vs打开
一点资料:
aspnet_regiis命令详解.
用法:
aspnet_regiis.exe[-i[r][-enable]|-u[a]|-r|-s[n]|-k[n]|-lv|-lk|-c|-e[a]|-?]
-i-安装ASP.NET的此版本,并更新IIS元数据库根处的
脚本映射和根以下的所有
脚本映射。现有的低版本脚本映射
升级到此版本。
-ir-安装ASP.NET的此版本,仅注册。不
更新IIS中的脚本映射。
-enable-带-i或-ir指定-enable时,还将
在IIS安全控制台(IIS6.0或更高版本)中启用ASP.NET。
-s-在指定的路径以递归方式安装此版本
的脚本映射。现有的低版本脚本映射
升级到此版本。
例如aspnet_regiis.exe-sW3SVC/1/ROOT/SampleApp1
-sn-在指定的路径以非递归方式安装此版本的
脚本映射。现有的低版本脚本映射
升级到此版本。
-r-为IIS元数据库根位置的此版本
以及根以下的所有脚本映射安装脚本映射。不论当前版本是什么,
所有现有的脚本映射都
更改为此版本。
-u-卸载ASP.NET的此版本。到此版本的
现有脚本映射重新映射到此计算机上安装的
其余的最高ASP.NET版本。
-ua-卸载计算机上的所有ASP.NET版本
-k-从指定的路径中以递归方式移除到任何ASP.NET版本的所有
脚本映射。
例如aspnet_regiis.exe-kW3SVC/1/ROOT/SampleApp1
-kn-从指定的路径中以非递归方式移除到任何ASP.NET版本的所有
脚本映射。
-lv-列出计算机上安装的所有
ASP.NET版本(包括状态和安装路径)。
Status:Valid[(Root)]|Invalid
-lk-列出包含ASP.NET脚本映射的所有IIS元数据库项的所有路径
(连同版本一起)。不显示从父项
继承ASP.NET脚本映射的项。
-c-将客户端脚本的此版本安装到
每个IIS站点目录的aspnet_client子目录中。
-e-从每个IIS站点目录的
aspnet_client子目录中
移除客户端脚本的此版本。
-ea-从每个IIS站点目录的aspnet_client子目录中
移除客户端脚本的所有版本。
-?-打印此帮助文本。
example:
当系统新建一个asp.netweb应用程序的时候,提示错误信息如下:
"VisualStudio.NET已检测到指定的Web服务器运行的不是ASP.NET版本,你将无法运行ASP.NET应用程序或服务。"
可以尝试运行
aspnet_regiis-i
aspnet_regiis-r
两个命令来安装asp.net服务管理器.
如果还是不行的话,再尝试一下下面的操作:
1、先确定是不是1.1
2、把"IP地址"设成全部未分配
3、在IE连接设置中把本地地址不使用代理服务器那里打上勾
⑶ ASP.NET常见错误大全
检测到有潜在危险的 Request Form 值
原因:
( )在提交数据的页面或webconfig中没有对validateRequest的属性进行正确的设置
( )HTML里面写了轿烂旅两个<form>引起
解决:
方案一 在 aspx文件头中加入这句 <%@ Page validateRequest= false %>
方案二 修改nfig文件:
<configuration>
<system web>
<pages validateRequest= false />
</system web>
</configuration>
因为validateRequest默认值为true 只要设为false即可
在没有任何数据时进行无效的读取尝试 解决办法
原因
所返回的sqldatareader无数据记录 但没有作记录判断力处理 返回的是空值
加上判断即可 if (reader read()) { TextName Text =
reader[ FieldName ] ToString(); }
数据为空 不能对空值调用此方法或属性
原因:
若对象是null 那么调用对象的方法例如ToString()肯定出错一般是数历宴据库字段的值为空
在grideview等闭凳数据控件常出现
解决:因此建议作NULL处理
阅读器关闭时 FieldCount 的尝试无效
原因:
使用了SqlDataReader来绑定数据后 将connection对象作了Close()处理
类似
public SqlDataReader GetSomething()
{
conn open();
SqlDataReader reader =
sqlcmd ExcecutReader(CommandBehavior CloseConnection));
conn close();// occur error here
return reader;
}
在绑定的时候调用了这个方法来指定数据源 如果使用这个方法则需要在调用函数中关闭Re
ader这样conn就可以自动关闭
如果是使用的是SqlDataAdapter和DataSet那么请去掉显式关闭conn的调用 或者在finally
中调用之
未能映射路径
原因:可能是在webconfig中的路径配置不正确所致 在FCKEditor的配置中这种问题比较突出
<add key= FCKeditor:BasePath value= ~/admin/fckeditor/ />
<add key= FCKeditor:UserFilesPath value= /UserFiles/ />
Unreachable code detected
原因
一般是在异常处理理或返回值时使用了 throw 或return 可能是其位置放在前面 造成后面的代码执行到了
解决
把相关的异常抛出处理的语句(throw)或return 的语句放到代理执行的最后一行
索引超出范围 必须为非负值并小于集合大小
原因
( ) 没有设置DATAKEYFIELD设为数据库中相对应的唯一字段(一般是主键)
( ) DataGrid Columns > e Item Cells
解决
( ) 设置datakeyfield
( ) 加入判断语句unt (datagrid可以是其它相类似的服务器控件)
数据源不支持服务器端的数据分页
解决方法:
不要使用DataReader 改成使用DataSet 或使用自定义分页形式 不采用提供的分页功能
OleDbDataAdapter da = new OleDbDataAdapter(sql connection);
DataSet ds = new DataSet();
da Fill(ds News );
GridView DataSource = ds ;
GridView DataBind();
对象名 ***** 无效
原因:当前使用的数据库中没有*****这张表
解决: 查看是否程序中是否写错了所调用的表的名称或看一下SQL数据库中是否存在你所调用的表
在建立与服务器的连接时出错 在连接到 SQL Server 时 在默认的设置下 SQL
Server 不允许进行远程连接可能会导致此失败 (provider: 命名管道提供程序
error: 无法打开到 SQL Server 的连接)
solution: 主机上需要用固定的IP地址或服务器地址
SqlDateTime 溢出 必须介于 / / : : AM 和 / / : : PM
之间
出现这种问题``多半是因为你更新数据库时``datetime字段值为空``默认插入 年 月
日``造成datetime类型溢出
出现 表示 属性 此处应为 方法
原因:
VB与c#的方法 属性的格式有所不一样导致
可能是在design中绑定数据的语法出现错误 解决: 记住属性用[] 方法用()
记住绑定数据的正确语法(有以下几种方式::<%Container DataItem( 字段名 )%> <%
#Eval( 字段名 )%> <%Bind( 字段名 )%>等)
未能从程序集 DAL Version= Culture=neutral
PublicKeyToken=null 中加载类型 DAL SqlHelper
原因:修改了其他层后未能重新编译成dll
解决:编译一下(Rebuild)
为过程或函数 指定的参数太多
solution:调用存储过程与定义的存储过程所用的参数数量或所执行的SQL语句中所传入的参
数个数不一致(这是个SQL的错误)
解决方案:仔细检查在存储过程中所设定的参数变量 与实际输入的参数值是否一一对应
无法启动调试 绑定句柄无效
原因:系统的Terminal Services没有开启
Unable to debugging on the web server Debug failed because integrated windows authentication is not enable
解决方法:
打开vs >工具(Tools) >选项(Option) >调试(debugging) >编辑并继续(Edit and Continue) >全部打勾
Automation 操作中文件名或类名未找到: RegExp
解决方法:regsvr vbscript dll
System NullReferenceException: 未将对象引用设置到对象的实例
原因:
( )所设置的变量为空值或没有取到值 一般出现在传递参数的时候出现这个问题 也会在使用datagrid或gridview或datalist等数据控件时出现
( )控件名称与codebehind里面的没有对应
( )未用new初始化对象
( )在程序中所引用的控件不存在
解决方法:
( )使用try catch finally捕捉错误 或直接用response write()输出所取的变量值
( )查看代码中是否存在未初始化的变量
错误 文件被数字签名策略拒绝(安装vs sp 时)解决方法:
( ) 单击 开始 单击 运行 键入 control admintools 然后单击 确定
( ) 双击 本地安全策略
( ) 单击 软件限制策略 (注意 如果未列出软件限制 请右击 软件限制策略 然后单击 新建策略 )
( ) 在 对象类型 下 双击 强制
( ) 单击 除本地管理员以外的所有用户 然后单击 确定
( ) 重新启动计算机
微软说明
vs 不能从源文件模式切换到视图模式
解决方法:dos下运行下 devenv /resetskippkgs (win+r cmd)
Validation of viewstate MAC failed
解决办法:页面的顶部page加 EnableViewState= False EnableViewStateMac = False 来解决这个问题
Automation server can t create object (Automation 服务器不能创建)
解决办法:运行: Regsvr scrrun dll 即可
包加载失败
未能正确加载包 Visual Web Developer Trident Designer Package (GUID =
{ AE E C D E F A AEFF }
解决方法:
设置系统变量 VsLogActivity=
在%APPDATA%MicrosoftVisualStudio 文件夹下创建文件ActivityLog xml
Error
Microsoft Visual Studio
LoadLibrary failed for package [Visual Web Developer Trident Designer Package]
{ AE E B C D E F A AEFF }
e
c:Program FilesMicrosoft Visual Studio Common Packages ridsn dll
从 WINNTMicroSoft NETFrameworkv xxx 复制文件gdiplus dll 到 Program FilesVisual Studio Common Packages文件夹下
在命令行下运行命令 devenv /resetskippkgs
Error spawning cmd exe
解决方案:把cmd exe 拷贝到VS安装目录下的VC/BIN目录里 可以解决问题
尝试读取或写入受保护的内存
解决:硬件有问题 一般内存有问题
无法在证书存储区中找到清单签名证书
解决方法:用记事本打开项目的 csproj文件 删除类似
该项目中不存在目标 ResolveKeySource
原因:这个问题很罕见 查询国外相关资料后 大致说是由于部署的不是一个标准的solution 需要在VS自带的命令提示中运行下面这个东西恢复
解决方法:
( ) 将下列代码存为XML文件 命名为TestBuild xml
<Project DefaultTargets= Build xmlns= >
<PropertyGroup>
<TargetConnectionString>Data Source= sql % BUser ID=SqlUser% BPooling=False% BPassword=X</TargetConnectionString>
</PropertyGroup>
<ItemGroup>
<DatabaseProject Include= Database Database dbproj />
<DatabaseProject Include= Database Database dbproj />
</ItemGroup>
<Target Name= BuildAllDatabaseProjects >
<MSBuild
Properties= TargetConnectionString=$(TargetConnectionString)
Projects= @(DatabaseProject)
Targets= Build;Deploy >
</MSBuild>
</Target>
( )在命令提示中运行:m *** uild /t:BuildAllDatabaseProjects TestBuild xml
</Project>
不能将值 NULL 插入列 **
原因:这是数据库表设计的错误 所涉及的表的字段中设置了不能为空的属性 但是传入的值为null 所以报错
解决方法:查看是否所传入的值是否为Null 或修改数据库中表的所对应的列的属性
未能加载类型 命名空间 类
原因:
( )项目修改后没有进行编译
( )项目中原有的命名空间可能被修改了
( )项目中所需要的ascx或其他页面不存在 或不包含在项目中
解决方法:
( )在修改完成之后 请重新生成或编译整个项目或解决方案
( )手工修改所改动的命名空间 注意名称的大小写 再重新编译
( )将相关的文件包含在项目中
不能访问只读文件 **** ***
解决方案:
给虚拟目录所对应的文件加上 Everyone/写入 权限即可
请求因 HTTP 状态 失败 Access Denied解决方法:在iis信息服务器上把匿名访问和允许iis控制密码给勾上
有一个无效 SelectedValue 因为它不在项目列表中
原因
( )在没有绑DropDownList之前就给DropDownList SelectedValue 赋值
( )dropdownlist中出现了null值
无法在 已存在的情况下创建/影像复制该文件
解决方案 重新编译项目(多个project全部重新编译) 关闭vs 重新打开 必要时重新启动机子
用户 CASPNET 登录失败登录失败
异常详细信息: System Data SqlClient SqlException: 用户 COOASPNET 登录失败
这是怎么回事啊?
因为你的程序连接SQLServer的连接字符串是用了windows集成登陆 你可以改成用数据库帐号密码登陆 连接字符串的写法是
server=localhost;uid=sa;pwd=xxxx;database=master;
server是数据库服务器的机器名或者IP 如果是同一台机可以用localhost
uid是数据库登陆帐号
pwd是数据库密码
database是数据库初始owner名称
答案
右击桌面我的电脑 选择 管理 双击打开的 计算机管理 对话框中的 本地用户和组 下的 组 在右边的窗口中双击 Remote Desktop Users 组 在打开的 Remote Desktop Users 属性对话框中 单击添加 在打开的 添加用户 对话框中单击 高级 再单击 立即查找 按钮 在 搜索 结果中 双击ASPNET(如果是IIS NEOR SERVERCE )再点击两次确定完成添加 用户
单击 开始 所有程序 Microsoft SQL Server 企业管理器 在打开的 控制台根目录 选择相应的数据库 右击该数据库的中的 用户 选择 新建数据库用户 在 新建用户 对话 框中点击 登陆名 右侧的下拉列表框 选择 新建 打开 新建登陆对话框 点击名称右侧的 省略号按钮 在打开的对话框中将 列出的名称 中选择 本机的名称 再在下面的名称框中选定 Remote Desktop Users 然后点击 成员 按钮 双击 ASPNET(如果是IIS NEOR SERVERCE ) 然后点击确定 在 新建登陆对话 框 中的默认设置的 数据库 选项中选择相应的数据库名称 再在 数据库访问 选项下勾选相应 的数据库点击确定 完成将默认的匿名用户添加到SQL
用户 nt authority eork service 登录失败
> sqlserver 调成sql server 和windows验证模式
>
(以下方法仅供参考)
第一步 把 NT AUTHORITYNEORK SERVICE 添加到Administrator组中
我的电脑 >右键 >管理 >本地用户和组
选择 组 >双击Administrators >单击 添加 >单击 高级 >单击 立即查找 >在下面的列表中选择Neork Service用户 >两次单击 确定 >加入
第二步 在企业管理器中加入NetWord Service用户
打开Sql Server企业管理器 >选择数据库实例 >打开 安全性 节点 >选择 登录 >在右边的列表中单击右键 >选择 新建登录 >在 常规 选项卡中单击 名称 旁边的按钮 >选择 Administrators 组 >单击下面的 成员 按钮 >选择 Neork Service >单击 添加 按钮 >单击 确定 返回 新建登录 对话框 >保证身份验证类型为 windows验证 和 允许访问 >单击 确定 >关闭 企业管理器
第三步
重新运行程序 数据库连接字符串选择windows验证即可
> 在sqlserver中添加帐户或IIS_WPG工作组
此方法来自于
未能加载视图状态 正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配 例如 当以动态方式添加控件时 在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配
原因 viewstate的在作用是将控件的状态保存 在下次Post给服务器 服务器进行恢复控件的状态 (控件的状态包括 值和事件 )
解决方法
( )每一个UserControl的viewstate都改为false
( )加入这个
this Page EnableViewState = false;
此方法来源于 _astar/archive/ / / /l
由于启动用户实例的进程时出错 导致无法生成 SQL Server 的用户实例 该连接将关闭
问题原因
这是微软的bug 并且微软已经承认 详情如下
出现此错误的条件是 你用过远程桌面连接 并且安装了SQL +VS 就有很大可能触发这个问题 微软说会在将来的XP SP 里面解决掉这个问题
解决
ID= &SiteID=
如果你看不懂英文 那么我告诉你我的解决办法
删除C:Documents and Settings[USERNAME]Local SettingsApplication DataMicrosoftMicrosoft SQL Server DataSQLEXPRESS目录即可 [USERNAME]是Windows用户名 比如说Administrator
此问题来于
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 为了给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即可
超时时间已到 超时时间已到 但是尚未从池中获取连接 出现这种情况可能是因为所有池连接均在使用 并且达到了最大池大小
可能原因如下 并发操作 Connection用后没有关闭 或者因为DataReader连接独占连接
解决方法
修改几个关键页面或访问比较频繁的数据库访问操作 使用DataAdapter和DataSet来获取数据库数据 不要使用DataReader
在访问数据库的页面上使用数据缓存 如果页面的数据不是经常更新(几分钟更新一次)的话 使用Cache对象可以不用访问数据库而使用缓存中的内容 那么可以大大减少连接数量
修改代码 把使用Connection对象的地方都在Close()后面加上Dispose()调用
建议对数据库操作进行大的修改 建立自己的数据库操作代理类 继承System IDisposable接口 强迫释放资源 这样就不会出现连接数量不够的问题了
包加载失败
未能正确加载包 Visual Web Developer Trident Designer Package (GUID =
{ AE E C D E F A AEFF } 请与包供应商联系以获得帮助 由于可能会发生环境损坏 建议重新启动应用程序 要禁止将来将来加载此包吗?可以使用 devenv reswetskippkgs 重新启用包加载
每次开机打开vs 都会有这个提示 烦
于是在google了一下 发现很多方法都试过了 只有一个解决一试就行
解决方法如下:
设置系统变量 VsLogActivity=
在%APPDATA%MicrosoftVisualStudio 文件夹下创建文件ActivityLog xml
从 WINNTMicroSoft NETFrameworkv xxx 复制文件gdiplus dll 到 Program FilesVisual Studio Common Packages文件夹下
在命令行下运行命令 devenv /resetskippkgs
注:发现此问题只有在win 会出现 win 就不会出现这个问题
用户 xxxASPNET登录失败
第一步
把 NT AUTHORITY NetWORK SERVICE 添加到Administrator组中
我的电脑 >右键 >管理 >本地用户和组
选择 组 >双击Administrators >单击 添加 >单击 高级 >单击 立即查找 >在下面的列表中选 Neork Service用户 >两次单击 确定 >加入
第二步 在企业管理器中加 Neork Service用户
打开Sql Server企业管理器 >选择数据库实例 >打开 安全性 节点 >选择 登录 >在右边的列表中单击右键 >选择 新建登录 >在 常规 选项卡中单击 名称 旁边的按钮 >选择 Administrators 组 >单击下面的 成员 按钮 >选择 Neork Service >单击 添加 按钮 >单击 确定 返回 新建登录 对话框 >保证身份验证类型为 windows验证 和 允许访问 >单击 确定 >关闭 企业管理器
第三步
重新运行asp Net程序 数据库连接字符串选择windows验证即可
以上针对win 如果是win 加ASp Net用户
无法在 已存在的情况下创建/影像复制该文件
解决方法 重新编译整个项目 或者重启电脑
Could not create an environment: OCIEnvCreate returned
解决方案一
主要是将oracle主目录oracle的读写权限赋予或者是IUSER_ 和IWAM_ 重启计算机
解决二:
打开在IIS中的WEB属性--主目录--执行权限【改为-脚本和可执行文件】
-应用程序池【改为-MSSharePointAppPool】 刷新OK
解决三:
文件夹权限可以不用管
设置ORACLE_HOME变量的方法如下
控制面板>>系统>>高级>>环境变量>>系统变量>>新建系统变量
变量名写ORACLE_HOME
变量值添实际的ORACLE_HOME路径 在注册表中有
由于目标机器积极拒绝 无法连接
在添加完引用后 用localhost替换掉所有的localhost: 重新编译
能加载视图状态 正在向其中加载视图状态的控件树必须与前一请求期间用于保存视图状态的控件树相匹配 例如 当以动态方式添加控件时 在回发期间添加的控件必须与在初始请求期间添加的控件的类型和位置相匹配
解决 在页面的 Page 项添加 EnableViewState= false 即可
在以下方法或属性之间的调用不明确 method 和 method
因隐式转换的缘故 编译器无法调用重载方法的某种形式 可以用以下方法纠正该错误
以不发生隐式转换的方式指定此方法的参数
移除此方法的所有重载
在调用方法之前 强制转换到正确的类型
在应用程序级别以外使用注册为 allowDefinition= MachineToApplication
解决 在网站对应的虚拟目录上右键 选属性 然后在应用程序名后点创建 名字随便填
[子目录不会继承上级的属性 所以要将aspx文件所在的目录属性设置正确]
无法识别的配置节 connectionStrings
原因
用vs 开发的应用程序需要使 framework 而在iis中的默环境是 这时将发生不可识别的节点的问题
解决办法
环境升级为 开始-》运行-》cmd-》
C:WINDOWSMicrosoft NETFrameworkv aspnet_regiis exe i
Timeout expired The timeout period elapsed prior to obtaining a connection from the pool This may have occurred because all pooled connections were in use and max pool size was reached
Description: An unhandled exception occurred ring 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 InvalidOperationException: Timeout expired The timeout period elapsed prior to obtaining a connection from the pool This may have occurred because all pooled connections were in use and max pool size was reached
主要原因可能有
使用了连接池 大量的sqlconnection用了后忘记关闸门 导致SQL占用严重 可以用 exec sp_who 这个存储过程查看一下
连接池的连接数有所限制
解决方法:
释放连接池 调用Connection对象的Close()方法关闭数据库连接
利用try catch finally对数据库连接进行异常处理 当无法连接数据库时将抛出异常 并显示出错信息 见catch代码块所示 在此程序中 无论是否发生异常 都可以通过finally区块关闭数据库的连接 从而节省计算机资源
将SqlConnection对象包含到using区块中 这样程序会自动调用Dispose()方法释放SqlConnection对象所占用的系统资源 无需再使用SqlConnection对象的Close()方法
指定min pool size表示连接池允许的最小连接数(默认为 ) 下面的代码指定了SqlConnection对象的max pool size为 min pool size为
lishixin/Article/program/net/201311/11175