webservice接口 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误

ttp1117 2013-05-22 10:52:01
小妹最近用ASP.NET创建了一个WebService服务,现已部署到服务器的IIS上,但是每次运行的时候都报
System.Data.SqlClient.SqlException: 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错),我仔细看过代码,数据库连接字符串也没有错,就是SQLConnection不能创建实例。请各位大虾帮助解答一下,谢谢!

说明一下,我这个项目是整合到服务器中的另一个项目中,在两个项目中我都添加了WEB服务引用,而我在IIS上浏览asmx文件是可以看到和进入方法调用页面的,只是在调用的时候就报上面的错误。
...全文
146 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
云-中-飞 2013-05-22
  • 打赏
  • 举报
回复
如图1、数据库是否配置允许别的自己访问
2、你登陆连接的实例名,是否跟你连接字符串的实例名是否相同
ttp1117 2013-05-22
  • 打赏
  • 举报
回复
我重新启动数据库服务好几次了,还是不行
爱在今世 2013-05-22
  • 打赏
  • 举报
回复
额,这种错误一般是因为数据库服务没有启动导致的,sqlservr.exe没有启动
ttp1117 2013-05-22
  • 打赏
  • 举报
回复
不知道哪块出现的问题,折腾许久就是抛出如下错误: 服务器无法处理请求。 ---> 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Named Pipes Provider, error: 40 - 无法打开到 SQL Server 的连接) 而WEBservice接口的方法 地址则可以访问"http://192.168.3.121:8000/WebService/AccountService.asmx",以前调试是成功的,不知道什么原因
ttp1117 2013-05-22
  • 打赏
  • 举报
回复
字符串核查过,防火墙已经关闭,用VStudio测试连接数据库,用的是SQL身份验证,测试是成功的
threenewbee 2013-05-22
  • 打赏
  • 举报
回复
检查连接字符串、账户权限(如果是Windows集成验证)、防火墙设置。
ttp1117 2013-05-22
  • 打赏
  • 举报
回复
嗯,谢谢,我都试过了,在中是测试成功的,而对应webservice接口的数据库连接串为 string strConn = "Data Source=CW-98E8E26BC14F;Initial Catalog=ACCOUNT;User ID=sa;Password=123456";
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP.NET初级程序员以及准备迁移到ASP.NET 2.0的编程老手。该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。 目录 第1章 ASP.NET 2.0概述1 1.1 简史1 1.2 ASP.NET 2.0的目标2 1.2.1 开发人员的效率3 1.2.2 管理5 1.2.3 性能和可伸缩性8 1.3 ASP.NET 2.0的其他新特性8 1.3.1 新的开发人员体系结构8 1.3.2 新的编译系统12 1.3.3 页面框架的新增内容13 1.3.4 访问数据的新对象15 1.3.5 新的服务器控件15 1.4 建立ASP.NET 2.0   页面的新IDE16 1.5 小结17 第2章 Visual Studio 200519 2.1 启动页面19 2.2 文档窗口20 2.2.1 文档窗口中的视图20 2.2.2 标记导航器21 2.2.3 页面标签22 2.2.4 代码改变状态的通知23 2.2.5 错误通知和辅助23 2.3 工具箱25 2.4 Solution Explorer26 2.5 Server Explorer28 2.6 Properties窗口28 2.7 丢失的窗口29 2.8 其他常见的Visual Studio操作29 2.8.1 创建新项目29 2.8.2 引用其他对象30 2.8.3 使用智能标记32 2.8.4 保存和导入    Visual Studio设置32 2.8.5 验证HTML34 2.8.6 团队的合作36 2.8.7 使用代码片断36 2.9 小结38 第3章 应用程序和页面框架39 3.1 应用程序的位置选项39 3.1.1 内置的Web服务器39 3.1.2 IIS40 3.1.3 FTP41 3.1.4 Web站点需要    FrontPage Extensions42 3.2 ASP.NET页面结构选项43 3.2.1 内置编码44 3.2.2 新的后台编码模型46 3.3 ASP.NET 2.0的Page指令48 3.3.1 @Page49 3.3.2 @Master51 3.3.3 @Control52 3.3.4 @Import53 3.3.5 @Implements54 3.3.6 @Register55 3.3.7 @Assembly55 3.3.8 @PreviousPageType56 3.3.9 @MasterType56 3.3.10 @OutputCache56 3.3.11 @Reference57 3.4 ASP.NET页面的事件57 3.5 处理回送59 3.6 跨页面的传送59 3.7 ASP.NET应用程序文件夹66 3.7.1 \\App_Code文件夹66 3.7.2 \\App_Data文件夹70 3.7.3 \\App_Themes文件夹70 3.7.4 \\App_GlobalResources    文件夹71 3.7.5 \\App_LocalResources    文件夹74 3.7.6 \\App_WebReferences    文件夹74 3.7.7 \\App_Browsers文件夹74 3.8 编译75 3.9 Global.asax78 3.10 小结79 第4章 ASP.NET服务器控件     和客户端脚本81 4.1 ASP.NET服务器控件81 4.1.1 服务器控件的类型82 4.1.2 用服务器控件建立页面83 4.1.3 处理服务器控件的事件84 4.2 给服务器控件应用样式87 4.2.1 控件的常见属性87 4.2.2 使用层叠样式表    改变样式88 4.3 HTML服务器控件93 4.3.1 HtmlControl基类95 4.3.2 HtmlContainerControl类96 4.3.3 所有的HTML类96 4.3.4 使用HtmlGeneric    Control类97 4.4 通过JavaScript处理页面和   服务器控件98 4.4.1 使用Page.ClientScript.    RegisterClient    ScriptBlock100 4.4.2 使用Page.ClientScript.  18.2.2 基于Windows的      身份验证模式615  18.2.3 基于窗体的身份验证622  18.2.4 Passport身份验证631 18.3 验证特定的文件和文件夹632 18.4 编程授权632  18.4.1 使用User.Identity633  18.4.2 使用User.IsInRole()634  18.4.3 用WindowsIdentity      显示更多信息635 18.5 身份和模拟637 18.6 通过IIS进行保护640  18.6.1 IP地址和域名限制640  18.6.2 使用文件扩展名641  18.6.3 使用新的     ASP.NET MMC插件643 18.7 小结644 第19章 状态管理645 19.1 如何选择645 19.2 ASP.NET 2.0中的    Session对象648  19.2.1 会话和事件模型648  19.2.2 配置会话状态的管理649  19.2.3 进程中的会话状态650  19.2.4 进程外的会话状态657  19.2.5 SQL支持的会话状态662  19.2.6 用其他提供程序      扩展会话状态664  19.2.7 无Cookie的会话状态666  19.2.8 选择维护状态的      正确方式667 19.3 Application对象667 19.4 查询字符串668 19.5 Cookie668 19.6 回送和跨页面的回送669 19.7 隐藏的字段、ViewState    和ControlState671 19.8 为短间状态存储应用    HttpContext.Current.Items675 19.9 小结676 第20章 高速缓存679 20.1 高速缓存679  20.1.1 输出高速缓存679  20.1.2 部分页面(UserControl) 的高速缓存682  20.1.3 Post-Cache Substitution683  20.1.4 HttpCachePolicy和 客户端高速缓存685 20.2 编程高速缓存687  20.2.1 使用Cache对象 高速缓存数据687  20.2.2 高速缓存依赖性688 20.3 使用SQL Server高速    缓存依赖性694  20.3.1 使数据库支持SQL       Server高速缓存       禁用功能695  20.3.2 使表支持SQL Server 高速缓存禁用功能695  20.3.3 对SQL Server的影响695  20.3.4 查看支持SQL       高速缓存禁用功能的表696  20.3.5 使表不支持       SQL Server高速       缓存禁用功能697  20.3.6 使数据库不支持       SQL Server高速       缓存禁用功能697  20.3.7 SQL Server 2005       高速缓存禁用功能698 20.4 配置ASP.NET应用程序699 20.5 测试SQL Server高速缓存 禁用功能700  20.5.1 给页面添加多个表702  20.5.2 给SQL Server 高速缓存依赖性和 Request对象建立关联702  20.5.3 给SQL Server 高速缓存依赖性 和Cache对象建立关联703 20.6 小结706 第21章 调试和错误处理技术709 21.1 设计期间的支持709  21.1.1 语法通知709  21.1.2 Immediate和 Command窗口711  21.1.3 任务列表712 21.2 跟踪713  21.2.1 System.Diagnostics. Trace和ASP.NET 的Page.Trace713  21.2.2 页面级的跟踪713  21.2.3 应用程序的跟踪714  21.2.4 查看跟踪数据714  21.2.5 在组件中跟踪717  21.2.6 跟踪的传送718  21.2.7 TraceListener719  21.2.8 诊断选项723 21.2.9 Web事件724 21.3 调试726 21.3.1 需要的内容726 21.3.2 IIS和ASP.NET      开发服务器727 21.3.3 启动调试会话728 21.3.4 有助于调试的新工具731 21.3.5 SQL存储过程的调试734 21.4 异常和错误处理735 21.4.1 处理页面上的异常735 21.4.2 处理应用程序异常736 21.4.3 HTTP状态码737 21.5 小结738 第22章 文件I/O和流739 22.1 使用驱动器、目录和文件739 22.1.1 DriveInfo类739 22.1.2 Directory和      DirectoryInfo类743 22.1.3 File和FileInfo类749 22.1.4 使用路径753 22.1.5 文件和目录的属性、      特性和访问控制列表757 22.2 读写文件764 22.2.1 流764 22.2.2 Reader和Writer769 22.2.3 压缩流773 22.3 处理串行端口779 22.4 网络通信779 22.4.1 WebRequest和      WebResponse779 22.4.2 发送邮件786 22.5 小结787 第23章 用户控件、服务器控件、      模块和HttpHandler789 23.1 用户控件789 23.1.1 创建用户控件790 23.1.2 与用户控件交互792 23.2 服务器控件794 23.2.1 项目的建立794 23.2.2 控件的属性798 23.2.3 控件的显示799 23.2.4 添加标记属性802 23.2.5 给HTML设置样式804 23.2.6 主题和Skin806 23.2.7 添加客户端特性807 23.2.8 检测和响应      浏览器功能816 23.2.9 使用ViewState819 23.2.10 启动PostBack事件824 23.2.11 处理回送数据828 23.2.12 复合控件830 23.2.13 模板化控件832 23.2.14 在设计期间创建控件840 23.3 模块和处理程序858 23.3.1 HttpModule859 23.3.2 HttpHandler869 23.4 小结875 第24章 使用业务对象877 24.1 使用ASP.NET 2.0    中的业务对象877 24.1.1 创建预编译的.NET     业务对象877 24.1.2 在ASP.NET应用     程序中使用预编译     的业务对象880 24.2 COM交互操作性:在.NET 中使用COM881 24.2.1 运行库可     调用包装(RCW)881 24.2.2 在ASP.NET代码中     使用COM对象882 24.2.3 错误处理887 24.2.4 用.NET应用程序     部署COM组件890 24.3 在未受管制的代码中    使用.NET891 24.3.1 COM可调用包装(CCW)892 24.3.2 在COM对象中     使用.NET组件893 24.3.3 早期绑定和后期绑定897 24.3.4 错误处理898 24.3.5 用COM应用程序     部署.NET组件899 24.4 小结901 第25章 移动开发903 25.1 创建新的ASP.NET移动 Web应用程序903 25.2 使用控件容器907 25.2.1 Form控件907 25.2.2 Panel控件908 25.3 使用样式表908 25.4 使用ASP.NET移动控件910 25.4.1 AdRotator控件910 25.4.2 Calendar控件912 25.4.3 Label控件915 25.4.4 TextBox控件915 25.4.5 TextView控件917 25.4.6 Command控件918 25.4.7 Image控件918 25.4.8 PhoneCall控件919 25.4.9 Link控件921 25.4.10 List控件922 25.4.11 ObjectList控件925 25.4.12 SelectionList控件926 25.5 使用验证控件930 25.6 在移动Web窗体之间导航932 25.7 移动Web用户控件932 25.8 使用模拟器936 25.9 设备过滤器936 25.10 ASP.NET移动应用程序    中的状态管理938 25.10.1 移动Web控件中    的ViewState939 25.10.2 管理会话状态940 25.10.3 隐藏字段940 25.11 小结942 第26章 建立和使用      XML Web服务943 26.1 不同系统之间的通信943 26.2 建立一个简单的    XML Web服务945 26.2.1 WebService页面指令946 26.2.2 查看Web服务的    基类文件946 26.2.3 把定制的数据集    显示为SOAP948 26.2.4 XML Web服务接口950 26.3 使用简单的XML Web服务953 26.3.1 添加Web引用953 26.3.2 在客户应用程序中    调用Web服务955 26.4 Web服务的传输协议957 26.4.1 HTTP-GET959 26.4.2 HTTP-POST961 26.4.3 SOAP962 26.5 WebMethod的重载962 26.6 高速缓存Web服务的响应965 26.7 SOAP标题966 26.7.1 用SOAP标题建立    Web服务967 26.7.2 通过SOAP标题    使用Web服务969 26.7.3 使用SOAP 1.2    请求Web服务971 26.8 异步使用Web服务973 26.9 小结976 第27章 配置977 27.1 配置概述977 27.1.1 服务器配置文件978 27.1.2 应用程序配置文件979 27.1.3 配置的应用979 27.1.4 检测配置文件的变化980 27.1.5 配置文件的格式980 27.2 公共配置设置981 27.2.1 连接字符串981 27.2.2 配置会话状态982 27.2.3 编译配置985 27.2.4 浏览器的功能987 27.2.5 定制错误989 27.2.6 身份验证990 27.2.7 匿名身份992 27.2.8 授权993 27.2.9 锁定配置设置995 27.2.10 ASP.NET页面配置995 27.2.11 include文件997 27.2.12 配置ASP.NET     运行设置997 27.2.13 配置ASP.NET     工作进程1001 27.2.14 存储与应用程序     相关的设置1003 27.2.15 配置文件的编程1004 27.2.16 保护配置设置1011 27.2.17 编辑配置文件1011 27.3 小结1012 第28章 管理1013 28.1 Web站点管理工具1013 28.1.1 Home选项卡1014 28.1.2 Security选项卡1015 28.1.3 Application选项卡1024 28.1.4 Provider选项卡1026 28.2 MMC ASP.NET插件1028 28.2.1 General选项卡1029 28.2.2 Custom Errors选项卡1031 28.2.3 Authorization选项卡1031 28.2.4 Authentication选项卡1033 28.2.5 Application选项卡1034 28.2.6 State Management    选项卡1035 28.2.7 Locations选项卡1036 28.3 小结1036 第29章 打包和部署ASP.NET    应用程序1037 29.1 部署各个部分1037 29.2 部署之前的准备1038 29.3 部署Web应用程序的方法1038 29.3.1 使用XCopy1039 29.3.2 使用VS Copy    Web Site选项1041 29.3.3 部署预编译的    Web应用程序1044 29.3.4 建立安装程序1046 29.4 安装程序的选项1053 29.4.1 使用部署项目的属性1053 29.4.2 File System编辑器1056 29.4.3 Registry编辑器1059 29.4.4 File Types编辑器1061 29.4.5 User Interface编辑器1061 29.4.6 Custom Actions编辑器1063 29.4.7 Launch Conditions    编辑器1064 29.5 小结1065 附录A Visual Basic 8.0和 C# 2.0语言的改进1067 A.1 概述1067 A.2 泛型1068 A.2.1 泛型集合1068 A.2.2 泛型方法1072 A.3 迭代器1074 A.4 匿名方法1075 A.5 运算符重载1077 A.6 全局命名空间限定符1077 A.7 部分类1078 A.8 Visual Basic XML文档1080 A.9 静态类1081 A.10 属性访问器1081 A.11 无符号类型1082 A.12 默认实例1083 A.13 Visual Basic的新关键字1083 A.13.1 Continue1083 A.13.2 Using1085 A.13.3 My1085 A.13.4 IsNot1086 A.13.5 TryCast1087 附录B ASP.NET在线资源1089 B.1 作者的Blog1089 B.2 ASP.NET有影响的Blog1089 B.3 Web站点1089    RegisterStartupScript101 4.4.3 使用Page.ClientScript.    RegisterClient    ScriptInclude103 4.5 客户端回调103 4.5.1 比较典型的回送和回调104 4.5.2 使用回调功能:    一种简单的方法105 4.5.3 使用带参数的回调功能110 4.6 小结113 第5章 ASP.NET Web服务器控件115 5.1 Web服务器控件概述115 5.2 Label服务器控件116 5.3 Literal服务器控件118 5.4 TextBox服务器控件119 5.4.1 使用Focus()方法120 5.4.2 使用AutoPostBack120 5.4.3 使用AutoCompleteType122 5.5 Button服务器控件122 5.5.1 CausesValidation属性123 5.5.2 CommandName属性123 5.5.3 使用客户端JavaScript    的按钮124 5.6 LinkButton服务器控件126 5.7 ImageButton服务器控件126 5.8 HyperLink服务器控件128 5.9 DropDownList服务器控件128 5.10 从集合中可视化地 删除条目131 5.11 ListBox服务器控件132  5.11.1 允许用户选择多项133  5.11.2 使用ListBox控件的例子133  5.11.3 给集合添加条目136 5.12 CheckBox服务器控件136  5.12.1 确定复选框是否被选中138  5.12.2 给复选框赋值138  5.12.3 排列复选框的文本138 5.13 CheckBoxList服务器控件139 5.14 RadioButton服务器控件141 5.15 RadioButtonList服务器控件143 5.16 Image服务器控件145 5.17 Table服务器控件146 5.18 Calendar服务器控件148 5.18.1 从Calendar控件中     选择一个日期149 5.18.2 从日历中选择要     输出的日期格式150 5.18.3 选择日期、星期或月份150 5.18.4 使用日期范围151 5.18.5 修改日历的样式     和操作方式153 5.19 AdRotator服务器控件156 5.20 Xml服务器控件158 5.21 Panel服务器控件158 5.22 PlaceHolder服务器控件160 5.23 小结161 第6章 ASP.NET 2.0的Web     服务器控件163 6.1 BulletedList服务器控件163 6.2 HiddenField服务器控件168 6.3 FileUpload服务器控件170 6.3.1 使用FileUpload控件    上传文件170 6.3.2 指定正确的ASP.NET    权限给上传文件172 6.3.3 理解文件大小的限制173 6.3.4 把上传的文件放在    Stream对象中174 6.3.5 把文件内容从Stream    对象移动到Byte数组中175 6.4 MultiView和   View服务器控件175 6.5 Wizard服务器控件179 6.5.1 定制边栏导航181 6.5.2 AllowReturn属性182 6.5.3 使用StepType属性182 6.5.4 给Wizard控件添加标题183 6.5.5 使用向导的导航系统183 6.5.6 使用Wizard控件的事件184 6.5.7 使用Wizard控件显示    窗体元素186 6.6 ImageMap服务器控件189 6.7 小结191 第7章 验证服务器控件193 7.1 有效性验证193 7.2 客户端和服务器端的验证194 7.3 ASP.NET验证服务器控件195 7.3.1 验证原因196 7.3.2 RequiredFieldValidator    服务器控件196 7.3.3 CompareValidator    服务器控件201 7.3.4 RangeValidator    服务器控件204 7.3.5 RegularExpression    Validator服务器控件208 7.3.6 CustomValidator    服务器控件209 7.3.7 ValidationSummary    服务器控件214 7.4 关闭客户端验证功能217 7.5 为错误通知使用图像和声音218 7.6 使用验证组219 7.7 小结223 第8章 使用Master页面225 8.1 需要Master页面的原因225 8.2 Master页面基础227 8.3 编写Master页面228 8.4 编写内容页面231 8.4.1 混合页面类型和语言234 8.4.2 指定要使用的Master    页面235 8.4.3 使用页面标题236 8.4.4 使用Master页面中的    控件和属性237 8.5 在Master页面中   指定默认内容244 8.6 编程指定Master页面246 8.7 Master页面的嵌套246 8.8 容器特定的Master页面249 8.9 事件的触发顺序251 8.10 高速缓存Master页面251 8.11 小结252 第9章 主题和Skin253 9.1 使用ASP.NET 2.0中的主题253 9.1.1 给单个ASP.NET    页面应用主题253 9.1.2 把主题应用于    整个应用程序255 9.1.3 删除服务器控件中    的主题255 9.1.4 删除Web页面上    的主题特性256 9.1.5 StyleSheetTheme属性256 9.2 创建自己的主题257 9.2.1 创建正确的文件夹结构257 9.2.2 创建Skin258 9.2.3 在主题中包含CSS文件260 9.2.4 使主题包含图像263 9.3 定义多个Skin选项266 9.4 编程使用主题267 9.4.1 编程指定页面的主题267 9.4.2 编程指定控件的SkinID268 9.5 主题和定制控件268 9.6 小结271 第10章 集合和列表273 10.1 数组273  10.1.1 重新设置 数组的大小276  10.1.2 查找数组中的对象276  10.1.3 给数组中的 对象排序280 10.2 System.Collections 命名空间281  10.2.1 ArrayList281  10.2.2 IEnumerable和     IEnumerator284  10.2.3 ICollection285  10.2.4 Lists和IList286  10.2.5 字典和IDictionary287  10.2.6 散列表288  10.2.7 SortedList292  10.2.8 Queue和Stack292 10.3 专用集合295  10.3.1 HybridDictionary和      ListDictionary295  10.3.2 StringCollection、      StringDictionary和      NameValueCollection295  10.3.3 BitArray295 10.4 Microsoft.VisualBasic.    Collection类296 10.5 强类型化的集合296 10.6 System.Collections.Generics299  10.6.1 泛型的定义299  10.6.2 泛型列表300  10.6.3 泛型字典302  10.6.4 其他泛型集合303 10.7 集合从.NET 1.1到.NET 2.0 的变化303 10.8 集合和列表总结303 10.9 小结306 第11章 ASP.NET 2.0中的数据绑定307 11.1 数据源控件307  11.1.1 SqlDataSource控件310  11.1.2 XmlDataSource控件316  11.1.3 ObjectDataSource      控件316  11.1.4 SiteMapDataSource      控件320 11.2 配置数据源控件的高速缓存321 11.3 存储连接信息321 11.4 使用绑定的列表控件和 数据源控件324  11.4.1 GridView325  11.4.2 编辑GridView      中的数据行333  11.4.3 删除GridView数据337  11.4.4 DetailsView339  11.4.5 使用DetailsView      插入、更新和删除数据345  11.4.6 FormView控件347 11.5 其他数据绑定控件351  11.5.1 DropDownList、      ListBox、      RadioButtonList      和CheckBoxList351  11.5.2 TreeView控件352  11.5.3 Ad Rotator控件352  11.5.4 Menu353 11.6 内置数据绑定语法353  11.6.1 DataBinder语法      的变化354  11.6.2 XML数据绑定器355 11.7 小结355 第12章 使用ADO.NET管理数据357 12.1 ADO.NET的基本功能357  12.1.1 ADO.NET的      基本命名空间和类357  12.1.2 使用Connection对象358  12.1.3 使用Command对象359  12.1.4 使用DataReader对象360  12.1.5 使用数据适配器362  12.1.6 使用参数365  12.1.7 DataSet和DataTable368 12.2 ADO.NET的新增功能371  12.2.1 从各种数据源中      批量加载数据372  12.2.2 批处理多个更新381  12.2.3 多个活动的      结果集(MARS)388  12.2.4 命令的异步执行394  12.2.5 异步连接415 12.3 小结416 第13章 使用XML417 13.1 XML基础417  13.1.1 XML InfoSet419  13.1.2 XSD/XML模式定义420  13.1.3 在Visual Studio .NET      2005中编辑XML和      XML模式422 13.2 XmlReader和XmlWriter425  13.2.1 使用模式和      XmlTextReader427  13.2.2 包含NameTable优化429  13.2.3 从XML中提取      .NET CLR类型431  13.2.4 ReadSubtree和      XmlSerialization433  13.2.5 用XmlWriter创建XML435  13.2.6 2.0版本中XmlReader      和XmlWriter的改进437 13.3 XmlDocument和 XPathDocument438  13.3.1 DOM的问题438  13.3.2 XPath、XPath      Document和      XmlDocument438 13.4 DataSet442  13.4.1 把DataSet保存到      XML中442  13.4.2 XmlDataDocument443 13.5 XmlDataSource控件445 13.6 XSLT449  13.6.1 XslCompiled      Transform450  13.6.2 XML Web      服务器控件452  13.6.3 XSLT调试454 13.7 数据库和XML454  13.7.1 FOR XML AUTO子句455  13.7.2 SQL Server Yukon      2005和XML数据类型459 13.8 小结459 第14章 站点导航461 14.1 基于XML的站点地图461 14.2 SiteMapPath 服务器控件463  14.2.1 PathSeparator属性465  14.2.2 PathDirection 属性467  14.2.3 ParentLevels      Displayed属性467  14.2.4 ShowToolTips属性468  14.2.5 SiteMapPath 控件      的子元素469 14.3 TreeView服务器控件469  14.3.1 标识TreeView控件      的内置样式471  14.3.2 TreeView控件      的各个部分472  14.3.3 在XML文件中      绑定TreeView控件472  14.3.4 在TreeView中      选择多个选项475  14.3.5 在TreeView控件中      指定定制的图标478  14.3.6 指定用于连接      节点的线条479  14.3.7 编程使用TreeView控件481 14.4 Menu服务器控件487  14.4.1 给Menu控件      应用不同的样式488  14.4.2 Menu事件493  14.4.3 把Menu控件绑定      到XML文件上493 14.5 SiteMap数据提供程序495  14.5.1 ShowStartingNode属性495  14.5.2 StartFromCurrent      Node属性496  14.5.3 StartingNodeOffset属性497  14.5.4 StartingNodeUrl      属性498 14.6 SiteMap API498 14.7 URL映射501 14.8 站点地图的本地化502  14.8.1 为本地化构建      Web.sitemap文件502  14.8.2 修改Web.config文件503  14.8.3 创建程序集资源      (.resx)文件504  14.8.4 测试结果505 14.9 小结506 第15章 个性化507 15.1 个性化模型507 15.2 创建个性化属性508  15.2.1 添加简单的个性化属性508  15.2.2 使用个性化属性509  15.2.3 添加一组个性化属性513  15.2.4 使用分组的个性化属性514  15.2.5 为个性化属性定义类型514  15.2.6 使用定制的类型515  15.2.7 提供默认值518  15.2.8 把个性化属性      指定为只读518 15.3 匿名个性化518  15.3.1 支持终端用户的      匿名身份519  15.3.2 使用匿名身份事件521  15.3.3 个性化属性的匿名选项522 15.4 编程访问个性化功能522  15.4.1 迁移匿名用户523  15.4.2 Profile的个性化524  15.4.3 确定是否继续自动保存525 15.5 个性化提供程序526  15.5.1 使用SQL Server      Express Edition526  15.5.2 使用Microsoft的      SQL Server527  15.5.3 使用多个提供程序534 15.6 小结534 第16章 成员和角色管理535 16.1 身份验证535 16.2 授权535 16.3 ASP.NET 2.0的身份验证536  16.3.1 为成员建立Web站点536  16.3.2 添加用户538  16.3.3 请求凭证549  16.3.4 处理验证用户553  16.3.5 在线显示用户数556  16.3.6 处理密码557 16.4 ASP.NET 2.0的授权561  16.4.1 使用LoginView      服务器控件561  16.4.2 为角色管理建立      Web站点563  16.4.3 添加和检索      应用程序角色566  16.4.4 删除角色568  16.4.5 给角色添加用户569  16.4.6 获取某个角色的      所有用户570  16.4.7 获取包含某个      用户的所有角色572  16.4.8 从角色中删除用户572  16.4.9 检查角色中的用户573  16.4.10 角色的高速      缓存方式574 16.5 使用Web站点管理工具575 16.6 Membership API的    公共方法576 16.7 Roles API的公共方法576 16.8 小结577 第17章 Portal Framework      和Web Part579 17.1 Web Part简介579 17.2 建立动态的模块化    Web站点581  17.2.1 WebPartManager控件581  17.2.2 使用区域进行布局582  17.2.3 WebPartZone控件585  17.2.4 允许用户改变      页面的模式587  17.2.5 修改区域598 17.3 使用Portal Framework    中的类604 17.4 创建定制的Web Part607 17.5 小结612 第18章 安全性613 18.1 身份验证和授权613 18.2 应用身份验证措施614
net的最近面试经典试题ASP.NET面试题集合 1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 在同一命名空间内可以访问。 2 .列举ASP.NET 页面之间传递值的几种方式。 答. 1.使用QueryString, 如....?id=1; response. Redirect().... 2.使用Session变量 3.使用Server.Transfer 3. 一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求第30位数是多少, 用递归算法实现。 答:public class MainClass { public static void Main() { Console.WriteLine(Foo(30)); } public static int Foo(int i) { if (i 0 && i <= 2) return 1; else return Foo(i -1) + Foo(i - 2); } } 4.C#中的委托是什么?事件是不是一种委托? 答 : 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托 5.override与重载的区别 答 : override 与重载的区别。重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要 Override 是进行基类中函数的重写。为了适应需要。 6.如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理? 答 : this.Server.Transfer 7.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? 答: foreach (System.Windows.Forms.Control control in this.Controls) { if (control is System.Windows.Forms.TextBox) { System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control ; tb.Text = String.Empty ; } } 8.请编程实现一个冒泡排序算法? 答: int [] array = new int ; int temp = 0 ; for (int i = 0 ; i < array.Length - 1 ; i++) { for (int j = i + 1 ; j < array.Length ; j++) { if (array[j] < array) { temp = array ; array = array[j] ; array[j] = temp ; } } } 9.描述一下C#中索引器的实现过程,是否只能根据数字进行索引? 答:不是。可以用任意类型。 10.求以下表达式的值,写出您想到的一种或几种实现方法: 1-2+3-4+……+m [Page] 答: int Num = this.TextBox1.Text.ToString() ; int Sum = 0 ; for (int i = 0 ; i < Num + 1 ; i++) { if((i%2) == 1) { Sum += i ; } else { Sum = Sum - I ; } } System.Console.WriteLine(Sum.ToString()); System.Console.ReadLine() ; 11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:一般为3层 数据访问层,业务层,表示层。 数据访问层对数据库进行增删查改。 业务层一般分为二层,业务表观层实现与表示层的沟通,业务规则层实现用户密码的安全等。 表示层为了与用户交互例如用户添加表单。 优点: 分工明确,条理清晰,易于调试,而且具有可扩展性。 缺点: 增加成本。 12.在下面的例子里 using Sy
2.ASP.NET.2.0.高级编程(第4版) [1/7] 原书名: Professional ASP.NET 2.0 原出版社: Wrox 作者:(美)Bill Evjen, Scott Hanselman, Farhan Muhammad [同作者作品] [作译者介绍] 译者: 李敏波[同译者作品] 出版社:清华大学出版社 ISBN:7302139067 上架间:2006-11-16 出版日期:2006 年11月 开本:185×260 页码:1090 版次:4-1 内容简介回到顶部↑本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP.NET初级程序员以及准备迁移到ASP.NET 2.0的编程老手。该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。. ASP.NET允许Web站点为每个访问者显示独一无二的页面,而不是显示相同的静态HTML页面。ASP.NET 2.0的发布,使Web应用程序的开发又前进了一大步。这个新版本增加了大量的新功能,减少了编写常见应用程序所需的代码量。 ASP.NET 2.0新增了50多个新服务器控件,类的数量也翻了一倍,其他许多方面也有很大的变化。本书介绍了ASP.NET 2.0中的每个新增特性和功能,以便读者把这些新技术应用于实践。.. 本书主要内容 ● 服务器控件的概念及其在ASP.NET开发中的主导作用 ● 使用新的Master页面特性创建模板化的ASP.NET页面 ● 调试和处理错误的技术 ● 提取、创建、处理和存储XML的各种框架 ● 打包和部署ASP.NET应用程序的方法 ● 快速、逻辑地检索、更新和删除数据 本书读者对象 本书适合于有一些ASP.NET基础知识的学习者以及准备迁移到ASP.NET 2.0的有经验的程序员和开发人员。 目录回到顶部↑ 第1章 ASP.NET 2.0概述 1 1.1 简史 1 1.2 ASP.NET 2.0的目标 2 1.2.1 开发人员的效率 3 1.2.2 管理 5 1.2.3 性能和可伸缩性 8 1.3 ASP.NET 2.0的其他新特性 8 1.3.1 新的开发人员体系结构 8 1.3.2 新的编译系统 12 1.3.3 页面框架的新增内容 13 1.3.4 访问数据的新对象 15 1.3.5 新的服务器控件 15 1.4 建立ASP.NET 2.0页面的新IDE 16 1.5 小结 17 第2章 Visual Studio 2005 19 2.1 启动页面 19 2.2 文档窗口 20 2.2.1 文档窗口中的视图 20 2.2.2 标记导航器 21 .2.2.3 页面标签 22 2.2.4 代码改变状态的通知 23 2.2.5 错误通知和辅助 23 2.3 工具箱 25 2.4 Solution Explorer 26 2.5 Server Explorer 28 2.6 Properties窗口 28 2.7 丢失的窗口 29 2.8 其他常见的Visual Studio操作 29 2.8.1 创建新项目 29 2.8.2 引用其他对象 30 2.8.3 使用智能标记 32 2.8.4 保存和导入Visual Studio设置 32 2.8.5 验证HTML 34 2.8.6 团队的合作 36 2.8.7 使用代码片断 36 2.9 小结 38 第3章 应用程序和页面框架 39 3.1 应用程序的位置选项 39 3.1.1 内置的Web服务器 39 3.1.2 IIS 40 3.1.3 FTP 41 3.1.4 Web站点需要FrontPage Extensions 42 3.2 ASP.NET页面结构选项 43 3.2.1 内置编码 44 3.2.2 新的后台编码模型 46 3.3 ASP.NET 2.0的Page指令 48 3.3.1 @Page 49 3.3.2 @Master 51 3.3.3 @Control 52 3.3.4 @Import 53 3.3.5 @Implements 54 3.3.6 @Register 55 3.3.7 @Assembly 55 3.3.8 @PreviousPageType 56 3.3.9 @MasterType 56 3.3.10 @OutputCache 56 3.3.11 @Reference 57 3.4 ASP.NET页面的事件
不定项选择题(共14题,单选或多选): 一、一个HTML文档必须包含三个元素,它们是head、html和( )。 A.scriptB.bodyC.titleD.link 二、下面哪段javascript能弹出一个提示框?( ) A.document.alert(test) B.window.alert(test) C.document.alert('test ') D.window.alert('test ') 三、当鼠标放在一个链接上的css样式应该( )伪类来定义。 A.a:visitedB.a:linkC.a:hoverD.a:active 四、关于ASP.NET中的代码隐藏文件的描述正确的是( )。 A.Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名 B.web窗体也是类 C.项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件 D.以上都不正确 五、下列ASP.NET语句( )正确地创建了一个与SQL Server数据库的连接。 A.SqlConnection con1 = new Connection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); B.SqlConnection con1 = new SqlConnection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); C.SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB”); D.SqlConnection con1 = new SqlConnection(Data Source = localhost; Trusted_Connection =Yes; Initial Catalog = myDB); 六、执行一次无返回值的数据删除,必须用到下面哪些对象? ( ) A.SqlConnectionB.SqlDataAdapterC.SqlCommandD.SqlDataReader 七、在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是( ) A.insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行; B.ExecuteNonQuery()方法返回执行Sql语句所影响的行数。 C.Select操作的Sql语句只能由ExecuteReader()方法来执行; D.ExecuteReader()方法返回一个DataReder对象; 八、ASP.NET有多种维护状态的技术,以下哪种是保存在客户端的?( ) A.VIEWSTATEB.SESSIONC.APPLICATIOND.数据CACHE 九、Cookies的默认生命周期有多长? ( ) A.20分钟B.30分钟C. 一天D.随浏览器的关闭而失效 十、int[][] myArray=new int[3][]{ new int[3]{ 5, 6, 2 }, new int[5]{ 6, 9, 7, 8, 3 }, new int[2]{ 3, 2 }}; myArray[2][2]的值是( ) A.9B.2C.6D.越界 十一、要为做了输出缓存的页面实现即判断用户IP来路,可在以下哪种事件中实现? ( ) A.Page.InitB.HttpApplication.BeginRequest C.Page.LoadD.以上都不是 十二、下面哪个SQL语句完全正确( ) A.Select count(*) from (select top 10 * from table order by bb) tb group by cc B.update set bb = bb + 1 from table C.Select count(*) from (select distinct * from table) tb group by cc D.delete * from table 十三、为了实现a.aspx的URL重写,下面哪个正则表达式替换可以实现?( ) A. Regex.Replace(sUrl, @“/(\d+).aspx”, “a.aspx?ID=$0”, RegexOptions.IgnoreCase) B. Regex.Replace(sUrl, @“/(\d+).aspx”, “/a.aspx?ID=$0”, RegexOptions.IgnoreCase) C. Regex.Replace(sUrl, @“/(\d+).aspx”, “a.aspx?ID=$1”, RegexOptions.IgnoreCase) D. Regex.Replace(sUrl, @“/(\d+).aspx”, “/a.aspx?ID=$1”, RegexOptions.IgnoreCase) 十四、下面javascript代码的输出结果是( ) var aa = new Array(1, 2, 4, 5, 3, 6); var c = 0; for (var i = 0; i < aa.length; ++i){ c += aa.pop(); } document.write(c); 提示:Array.pop()函数将数组内最后一个元素移除并返回该元素 A.7 B.14 C.21 D.以上皆不正确 填空题(共4题): 一、C#中判断整型变量k是否偶数的语句: 二、有这样的枚举定义:public enum TrainType{ 空调, 快速, 新型, 卧铺 },为实现它的按位组合,你会分别赋予它们什么值?请用逗号按顺序分隔开 三、C#中为了防止非本程序集的代码访问,可以用什么关键字修饰类或者类成员? 四、为了将table表内bb(datetime类型)字段的数据按年月降序输出,对应的SQL语句为 选择题答案: 1.B,2.D,3.C,4.BC,5.B,6.AC,7.C,8.A,9.D,10.D,11.B,12.AC,13.D,14.B 填空题答案: 1.(k & 1) == 0 或 k % 2 == 0 2.1,2,4,8(答案不定,看情况) 3.internal 4.select * from table order by year(bb) desc, month(bb) desc 1.new有几种用法 第一种:new Class(); 第二种:覆盖方法 public new XXXX(){} 第三种:new 约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数。 2.如何把一个array复制到arrayList里 foreach( object o in array )arrayList.Add(o); 3.datagrid.datasouse可以连接什么数据源 [dataset,datatable,dataview] dataset,datatable,dataview , IList 4.概述反射和序列化 反射:程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性 序列化:序列化是将对象转换为容易传输的格式的过程。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。 5.概述o/r mapping 的原理 利用反射,配置 将类于数据库表映射 6.类成员有( )种可访问形式 可访问形式?不懂。 可访问性:public ,protected ,private,internal 7.用sealed修饰的类有什么特点 sealed 修饰符用于防止从所修饰的类派生出其它类。如果一个密封类被指定为其他类的基类,则会发生编译错误。 密封类不能同为抽象类。 sealed 修饰符主要用于防止非有意的派生,但是它还能促使某些运行优化。具体说来,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。 8.列举ADO.NET中的五个主要对象,并简单描述 connection,command,dataReader,trans,dataset ... 9.执行下面代码后: String strTemp ="abcdefg 某某某"; Int i System.Text.Encoding.Default.GetBytes(strTemp).Length; Int j = strTemp.Length; 问:i=(14 ) ;j=(11 ) i=(14 ) ;j=(11 ) 中文两个字节 10.C#中,string str = null 与 string str ="",请尽量用文字说明区别。(要点:说明详细的内存空间分配) string str ="" 分配空间 11.详述.NET里class和struct的异同! class:放在 ? struct放在? struct值传递 类与结构有很多相似之处:结构可以实现接口,并且可以具有与类相同的成员类型。然而,结构在几个重要方面不同于类:结构为值类型而不是引用类型,并且结构不支持继承。结构的值存储在“在堆栈上”或“内联”。细心的程序员有可以通过聪明地使用结构来增强性能。 12.概述.NET里对 remoting 和 webservice 两项技术的理解和实际中的应用。 远程逻辑调用,remoing接口只能用在.net中 13.什么是code-behind技术 aspx and cs 14.概述三层结构体系 web/business/dataaccess 15.asp.net如何实现MVC模式,举例说明! web/business/dataaccess ---------------------------------------------------------------------------------------------------------- 1.面向对象的思想主要包括什么? 答:这个题范围太广,不知道说什么. 2.什么是ASP.net中的用户控件 答:用户控件就是.ascx扩展名的东西喽,可以拖到不同的页面中调用,以节省代码.比如登陆可能在多个页面上有,就可以做成用户控件,但是有一个问题就是用户控件拖到不同级别的目录下后里面的图片等的相对路径会变得不准确,需要自已写方法调整. 3.什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?什么是重载?CTS、CLS和CLR分别作何解释? 答:装箱就是把值类型转成引用类型,从MS IL角度看好像是boxing,没记错的话是把值从堆栈转到堆中.拆箱相反,重载就是指一个方法名同,参数个数不同,返回值可以相同的方法.CLR是通用语言运行,其它的不清楚. 4.列举一下你所了解的XML技术及其应用 答:XML可是好东西,保存配置,站与站之间的交流,WEB SERVICE都要用它. 5.值类型和引用类型的区别?写出C#的样例代码。 答:结构是值类型,类是引用类型,所以传结构就是值类型的应用啦,传对象或类就是引用类型的,这个不用多写了吧. 6.ADO.net中常用的对象有哪些?分别描述一下。 答:connection command sqladapter dataset datatable dataview等等.写不完了. 7.如何理解委托? 答:据说相当于函数指针,定义了委托就可以在不调用原方法名称的情况下调用那个方法. msdn2005中是这样解释的: 委托具有以下特点: 委托类似于 C++ 函数指针,但它是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。 委托可以链接在一起;例如,可以对一个事件调用多个方法。 方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。 C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。 8.C#中的接口和类有什么异同。 答:这个异同可多了,要说清楚还真不容易. 9.。net中读写数据库需要用到哪些类?他们的作用 答:这个类自已可以写的啊,你是指基类吗?那configuration,sqlconnection,sqlcommand等都要用到. 10.UDP连接和TCP连接的异同。 答:前者只管传,不管数据到不到,无须建立连接.后者保证传输的数据准确,须要连结. 11.ASP.net的身份验证方式有哪些?分别是什么原理? 答:form认证,windows集成认证等,原理不清楚. 12.进程和线程分别怎么理解? 答:进程是老子,线程是儿子,没有老子就没有儿子,一个老子可以有多个儿子.一个儿子可以成为别人的儿子,一个老子也可以为别的老子生儿子. 13.什么是code-Behind技术。 答:代码分离,这是个明智的东西,像ASP这样混成一堆很不爽.或者可以理解成HTML代码写在前台,C#代码写在后台.当然前台也有脚本,类的调用等,其实写在一起也是可以的. 14.活动目录的作用。 答:这个不明白.请明白的补充一下. 15..net中读写XML的类都归属于哪些命名空间? 答:System.Xml 我自已写的就不一定了,嘿嘿. 16.解释一下UDDI、WSDL的意义及其作用。 答:什么东西? 17.什么是SOAP,有哪些应用。 答:SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息并执行远程过程调用的协议,是一个基于XML的协议。使用SOAP,不用考虑任何特定的传输协议(最常用的还是HTTP协议),可以允许任何类型的对象或代码,在任何平台上,以任何一直语言相互通信。这种相互通信采用的是XML格式的消息,具体请看:http://playist.blogchina.com/2521621.html 18.如何部署一个ASP.net页面。 答:随便啦,想直接上传就直接上传,想打包成EXE就打包,看个人喜好. 19.如何理解.net中的垃圾回收机制。 答:GC?对象创建了总要清除啊,不然内存哪够用?
CLR.via.C#.(中文第3版)(自制详细书签)Part2 CLR via C#(第3版) Jeffrey Richter 著 周靖 译 出版间:2010年09月 页数:800 介绍 享有全球盛誉的编程专家Jeffrey Richter,这位与Microsoft .NET开发团队合作长达8年间的资深顾问,在本书中和读者分享他编程生涯中积累的所有丰富经验和心得,他的独到、睿智的见解,他的远见卓识,为开发人员构建健壮、可靠和具有良好响应能力的应用程序与组件奠定了良好的基础。 《CLR via C#(第3版) 》针对.NET Framework 4.0和多核编程进行了全面更新和修订,是帮助读者深入探索和掌握公共语言运行、C#和.NET开发的重要参考,同也是帮助开发人员构建任何一种应用程序(如Microsoft Silverlight、ASP.NET、Windows Prensentation Foundation、Web服务和控制台应用程序)的良师益友。 本书涵括以下主题: · 构建、部署应用程序、组件和共享程序集,并对它们进行版本管理 · 理解基元类型、值类型和引用类型的行为,从而最高效地定义和使用它们 · 使用泛型和接口来定义可重用的算法 · 高效使用特定的CLR类型——委托、枚举、定制attribute、数组和字符串 · 理解垃圾回收器是如何管理内存资源的 · 使用线程池、任务、取消、计器和异步I/O操作来设计响应性强、稳定性高和伸缩性大的解决方案 · 借助于异常处理来进行状态管理 · 使用CLR寄宿、AppDomain、程序集加载、反射和C#的dynamic类型来构造具有动态扩展能力的应用程序 本书作者作者Jeffrey Richter,.NET和Windows编程领域当之无愧的大师和权威,以著述清楚明了,行文流水,言简意赅著称,在国内具有相当高的知名度,他的著作之一《Windows核心编程(第5版)》屡获殊荣,在国内外都享有盛誉,在国内因年销量过万而获得中国书刊业发行协会“2009年度全行业畅销书品种”称号。 目录 第1章 CLR的执行模型 1.1 将源代码编译成托管模块 1.2 将托管模块合并成程序集 1.3 加载公共语言运行 1.4 执行程序集的代码 1.4.1 IL和验证 1.4.2 不安全的代码 1.5 本地代码生成器:NGen.exe 1.6 Framework类库 1.7 通用类型系统 1.8 公共语言规范 1.9 与非托管代码的互操作性 第2章 生成、打包、部署和管理应用程序及类型 2.1 .NET Framework部署目标 2.2 将类型生成到模块中 2.2.1 响应文件 2.3 元数据概述 2.4 将模块合并成程序集 2.4.1 使用Visual Studio IDE将程序集添加到项目中 2.4.2 使用程序集链接器 2.4.3 为程序集添加资源文件 2.5 程序集版本资源信息 2.5.1 版本号 2.6 语言文化 2.7 简单应用程序部署(私有部署的程序集) 2.8 简单管理控制(配置) 第3章 共享程序集和强命名程序集 3.1 两种程序集,两种部署 3.2 为程序集分配强名称 3.3 全局程序集缓存 3.4 在生成的程序集中引用一个强命名程序集 3.5 强命名程序集能防范篡改 3.6 延迟签名 3.7 私有部署强命名程序集 3.8 “运行”如何解析类型引用 3.9 高级管理控制(配置) 3.9.1 发布者策略控制 第4章 类 型 基 础 4.1 所有类型都从System.Object派生 4.2 类型转换 4.2.1 使用C#的is和as操作符来转型 4.3 命名空间和程序集 4.4 运行的相互联系 第5章 基元类型、引用类型和值类型 5.1 编程语言的基元类型 5.1.1 checked和unchecked基元类型操作 5.2 引用类型和值类型 5.3 值类型的装箱和拆箱 5.3.1 使用接口更改已装箱值类型中的字段(以及为什么不应该这样做) 5.3.2 对象相等性和同一性 5.4 对象哈希码 5.5 dynamic基元类型 第6章 类型和成员基础 6.1 类型的各种成员 6.2 类型的可见性 6.2.1 友元程序集 6.3 成员的可访问性 6.4 静态类 6.5 分部类、结构和接口 6.6 组件、多态和版本控制 6.6.1 CLR如何调用虚方法、属性和事件 6.6.2 合理使用类型的可见性和成员的可访问性 6.6.3 对类型进行版本控制的虚方法的处理 第7章 常量和字段 7.1 常量 7.2 字段 第8章 方法 8.1 实例构造器和类(引用类型) 8.2 实例构造器和结构(值类型) 8.3 类型构造器 8.3.1 类型构造器的性能 8.4 操作符重载方法 8.4.1 操作符和编程语言互操作性 8.5 转换操作符方法 8.6 扩展方法 8.6.1 规则和原则 8.6.2 用扩展方法扩展各种类型 8.6.3 ExtensionAttribute 8.7 分部方法 8.7.1 规则和原则 第9章 参 数 9.1 可选参数和命名参数 9.1.1 规则和原则 9.1.2 DefaultParameterValueAttribute和OptionalAttribute 9.2 隐式类型的局部变量 9.3 以传引用的方式向方法传递参数 9.4 向方法传递可变数量的参数 9.5 参数和返回类型的指导原则 9.6 常量性 第10章 属性 10.1 无参属性 10.1.1 自动实现的属性 10.1.2 合理定义属性 10.1.3 对象和集合初始化器 10.1.4 匿名类型 10.1.5 System.Tuple类型 10.2 有参属性 10.3 调用属性访问器方法的性能 10.4 属性访问器的可访问性 10.5 泛型属性访问器方法 第11章 事件 11.1 设计要公开事件的类型 11.1.1 第一步:定义类型来容纳所有需要发送给事件通知接收者的附加信息 11.1.2 第二步:定义事件成员 11.1.3 第三步:定义负责引发事件的方法来通知事件的登记对象 11.1.4 第四步:定义方法将输入转化为期望事件 11.2 编译器如何实现事件 11.3 设计侦听事件的类型 11.4 显式实现事件 第12章 泛型 12.1 Framework类库中的泛型 12.2 Wintellect的Power Collections库 12.3 泛型基础结构 12.3.1 开放和封闭类型 12.3.2 泛型类型和继承 12.3.3 泛型类型同一性 12.3.4 代码爆炸 12.4 泛型接口 12.5 泛型委托 12.6 委托和接口的逆变和协变泛型类型实参 12.7 泛型方法 12.7.1 泛型方法和类型推断 12.8 泛型和其他成员 12.9 可验证性和约束 12.9.1 主要约束 12.9.2 次要约束 12.9.3 构造器约束 12.9.4 其他可验证性问题 第13章 接口 13.1 类和接口继承 13.2 定义接口 13.3 继承接口 13.4 关于调用接口方法的更多探讨 13.5 隐式和显式接口方法实现(幕后发生的事情) 13.6 泛型接口 13.7 泛型和接口约束 13.8 实现多个具有相同方法名和签名的接口 13.9 用显式接口方法实现来增强编译类型安全性 13.10 谨慎使用显式接口方法实现 13.11 设计:基类还是接口? 第14章 字符、字符串和文本处理 14.1 字符 14.2 System.String类型 14.2.1 构造字符串 14.2.2 字符串是不可变的 14.2.3 比较字符串 14.2.4 字符串留用 14.2.5 字符串池 14.2.6 检查字符串中的字符和文本元素 14.2.7 其他字符串操作 14.3 高效率构造字符串 14.3.1 构造StringBuilder对象 14.3.2 StringBuilder的成员 14.4 获取对象的字符串表示:ToString 14.4.1 指定具体的格式和语言文化 14.4.2 将多个对象格式成一个字符串 14.4.3 提供定制格式化器 14.5 解析字符串来获取对象:Parse 14.6 编码:字符和字节的相互转换 14.6.1 字符和字节流的编码和解码 14.6.2 Base-64字符串编码和解码 14.7 安全字符串 第15章 枚举类型和位标志 15.1 枚举类型 15.2 位标志 15.3 向枚举类型添加方法 第16章 数组 16.1 初始化数组元素 16.2 数组转型 16.3 所有数组都隐式派生自System.Array 16.4 所有数组都隐式实现IEnumerable,Icollection和IList 16.5 数组的传递和返回 16.6 创建下限非0的数组 16.7 数组的访问性能 16.8 不安全的数组访问和固定大小的数组 第17章 委托 17.1 初识委托 17.2 用委托回调静态方法 17.3 用委托回调实例方法 17.4 委托揭秘 17.5 用委托回调许多方法(委托链) 17.5.1 C#对委托链的支持 17.5.2 取得对委托链调用的更多控制 17.6 委托定义太多啦(泛型委托) 17.7 C#为委托提供的简化语法 17.7.1 简化语法1:不需要构造委托对象 17.7.2 简化语法2:不需要定义回调方法 17.7.3 简化语法3:局部变量不需要手动包装到类中即可传给回调方法 17.8 委托和反射 第18章 定制attribute 18.1 使用定制attribute 18.2 定义自己的attribute类 18.3 attribute的构造器和字段/属性的数据类型 18.4 检测定制attribute 18.5 两个attribute实例的相互匹配 18.6 检测定制attribute不创建从Attribute派生的对象 18.7 条件attribute类 第19章 可空值类型 19.1 C#对可空值类型的支持 19.2 C#的空接合操作符 19.3 CLR对可空值类型的特殊支持 19.3.1 可空值类型的装箱 19.3.2 可空值类型的拆箱 19.3.3 通过可空值类型调用GetType 19.3.4 通过可空值类型调用接口方法 第20章 异常和状态管理 20.1 定义“异常” 20.2 异常处理机制 20.2.1 try块 20.2.2 catch块 20.2.3 finally块 20.3 System.Exception类 20.4 FCL定义的异常类 20.5 抛出异常 20.6 定义自己的异常类 20.7 用可靠性换取开发效率 20.8 指导原则和最佳实践 20.8.1 善用finally块 20.8.2 不要什么都捕捉 20.8.3 得体地从异常中恢复 20.8.4 发生不可恢复的异常回滚部分完成的操作——维持状态 20.8.5 隐藏实现细节来维系契约 20.9 未处理的异常 20.10 对异常进行调试 20.11 异常处理的性能问题 20.12 约束执行区域(CER) 20.13 代码契约 第21章 自动内存管理(垃圾回收) 21.1 理解垃圾回收平台的基本工作原理 21.1.1 从托管堆分配资源 21.2 垃圾回收算法 21.3 垃圾回收与调试 21.4 使用终结操作来释放本地资源 21.4.1 使用CriticalFinalizerObject类型确保终结 21.4.2 SafeHandle类型及其派生类型 21.4.3 使用SafeHandle类型与非托管代码进行互操作 21.5 对托管资源使用终结操作 21.6 什么会导致调用Finalize方法 21.7 终结揭秘 21.8 Dispose模式:强制对象清理资源 21.9 使用实现了Dispose模式的类型 21.10 C#的using语句 21.11 一个有趣的依赖性问题 21.12 手动监视和控制对象的生存期 21.13 对象复活 21.14 代 21.15 用于本地资源的其他垃圾回收功能 21.16 预测需求大量内存的操作能否成功 21.17 编程控制垃圾回收器 21.18 线程劫持 21.19 垃圾回收模式 21.20 大对象 21.21 监视垃圾回收 第22章 CLR寄宿和AppDomain 22.1 CLR寄宿 22.2 AppDomain 22.2.1 跨越AppDomain边界访问对象 22.3 卸载AppDomain 22.4 监视AppDomain 22.5 AppDomain FirstChance异常通知 22.6 宿主如何使用AppDomain 22.6.1 可执行应用程序 22.6.2 Microsoft Silverlight富Internet应用程序 22.6.3 Microsoft ASP.NET Web窗体和XML Web服务应用程序 22.6.4 Microsoft SQL Server 22.6.5 更多的用法只局限于你自己的想象力 22.7 高级宿主控制 22.7.1 使用托管代码管理CLR 22.7.2 编写健壮的宿主应用程序 22.7.3 宿主如何拿回它的线程 第23章 程序集加载和反射 23.1 程序集加载 23.2 使用反射构建动态可扩展应用程序 23.3 反射的性能 23.3.1 发现程序集中定义的类型 23.3.2 类型对象的准确含义 23.3.3 构建Exception派生类型的一个层次结构 23.3.4 构造类型的实例 23.4 设计支持加载项的应用程序 23.5 使用反射发现类型的成员 23.5.1 发现类型成员 23.5.2 BindingFlags:筛选返回的成员种类 23.5.3 发现类型的接口 23.5.4 调用类型的成员 23.5.5 一次绑定、多次调用 23.5.6 使用绑定句柄来减少进程的内存耗用 第24章 运行序列化 24.1 序列化/反序列化快速入门 24.2 使类型可序列化 24.3 控制序列化和反序列化 24.4 格式化器如何序列化类型实例 24.5 控制序列化/反序列化的数据 24.5.1 如何在基类没有实现ISerializable的前提下定义一个实现它的类型 24.6 流上下文 24.7 将类型序列化为不同的类型以及将对象反序列化为不同的对象 24.8 序列化代理 24.8.1 代理选择器链 24.9 反序列化对象重写程序集和/或类型 第25章 线程基础 25.1 Windows为什么要支持线程 25.2 线程开销 25.3 停止疯狂 25.4 CPU发展趋势 25.5 NUMA架构的机器 25.6 CLR线程和Windows线程 25.7 使用专用线程执行异步的计算限制操作 25.8 使用线程的理由 25.9 线程调度和优先级 25.10 前台线程和后台线程 25.11 继续学习 第26章 计算限制的异步操作 26.1 CLR线程池基础 26.2 执行简单的计算限制操作 26.3 执行上下文 26.4 协作式取消 26.5 任务 26.5.1 等待任务完成并获取它的结果 26.5.2 取消任务 26.5.3 一个任务完成自动启动一个新任务 26.5.4 任务可以启动子任务 26.5.5 任务内部揭秘 26.5.6 任务工厂 26.5.7 任务调度器 26.6 Parallel的静态For,ForEach和Invoke方法 26.7 并行语言集成查询(PLINQ) 26.8 执行定计算限制操作 26.8.1 太多的计器,太少的间 26.9 线程池如何管理线程 26.9.1 设置线程池限制 26.9.2 如何管理工作者线程 26.10 缓存线和伪共享 第27章 I/O限制的异步操作 27.1 Windows如何执行I/O操作 27.2 CLR的异步编程模型(APM) 27.3 AsyncEnumerator类 27.4 APM和异常 27.5 应用程序及其线程处理模型 27.6 异步实现服务器 27.7 APM和计算限制操作 27.8 APM的注意事项 27.8.1 在没有线程池的前提下使用APM 27.8.2 总是调用EndXxx方法,而且只调用一次 27.8.3 调用EndXxx方法总是使用相同的对象 27.8.4 为BeginXxx和EndXxx方法使用ref,out和params实参 27.8.5 不能取消异步I/O限制操作 27.8.6 内存消耗 27.8.7 有的I/O操作必须同步完成 27.8.8 FileStream特有的问题 27.9 I/O请求优先级 27.10 将IAsyncResult APM转换为Task 27.11 基于事件的异步模式 27.11.1 将EAP转换为Task 27.11.2 APM和EAP的对比 27.12 编程模型的泥沼 第28章 基元线程同步构造 28.1 类库和线程安全 28.2 基元用户模式和内核模式构造 28.3 用户模式构造 28.3.1 易失构造 28.3.2 互锁构造 28.3.3 实现简单的Spin Lock 28.3.4 Interlocked Anything模式 28.4 内核模式构造 28.4.1 Event构造 28.4.2 Semaphore构造 28.4.3 Mutex构造 28.4.4 在一个内核构造可用调用一个方法 第29章 混合线程同步构造 29.1 一个简单的混合锁 29.2 自旋、线程所有权和递归 29.3 混合构造的大杂烩 29.3.1 ManualResetEventSlim和SemaphoreSlim类 29.3.2 Monitor类和同步块 29.3.3 ReaderWriterLockSlim类 29.3.4 OneManyLock类 29.3.5 CountdownEvent类 29.3.6 Barrier类 29.3.7 线程同步构造小结 29.4 著名的双检锁技术 29.5 条件变量模式 29.6 用集合防止占有锁太长的间 29.7 并发集合类

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧