65.9K
CodeProject 正在变化。 阅读更多。
Home

100 个 ASP.NET 常见问题解答:第 2 部分

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.27/5 (36投票s)

2005年9月6日

6分钟阅读

viewsIcon

106599

本题库旨在为各类 .NET 发烧友提供电子资源:无论是需要了解细节以便面试的初学者,还是希望巩固框架知识的专家。

引言

本题库旨在为各类 .NET 发烧友提供电子资源:无论是需要了解细节以便面试的初学者,还是希望巩固框架知识的专家。本题库已分成 4 部分,每部分包含 25 个问题,重点关注以下主题:

  • ASP.NET 框架 1.0/1.1/2.0
  • 安全
  • SQL Server 2000/2005
  • COM/COM+
  • Web 服务
  • 架构/设计

常见问题解答

  1. 什么是接口?什么是抽象类?

    在接口中,所有方法都必须是抽象的(不能有定义)。在抽象类中,有些方法可以有定义。接口不允许使用访问修饰符,而抽象类可以。

  2. Session 状态与 View 状态的区别

    在某些情况下,使用 View 状态不可行。View 状态的替代方案是 Session 状态。Session 状态在以下情况中使用:

    • 大量数据 - View 状态会增加发送到浏览器和回发的 HTML 页面的大小。因此,使用 Session 状态。
    • 安全数据 - 尽管 View 状态数据经过编码,并且可能经过加密,但如果敏感数据不发送给客户端,则更安全。因此,Session 状态是更安全的选择。
    • 对象序列化到 View 状态的问题 - View 状态对于少量数据很有效。像 DataSet 这样的其他类型速度较慢,并且会生成非常大的 View 状态。
  3. 可以在单个 ASPX 文件中混合使用两种不同的编程语言吗?

    ASP.NET 的内置解析器用于从 ASPX 文件中提取代码并创建临时文件。每个解析器只理解一种语言。因此,无法在单个 ASPX 文件中混合使用语言。

  4. 是否可以看到 ASP.NET 从 ASPX 文件生成的代码?

    通过在 ASPX 文件中启用调试,使用 <%@ Page Debug="true" %> 指令,或在 Web.config 中使用 <compilation debug="true"> 语句,可以查看生成的代码。代码存储在 CS 或 VB 文件中(通常在 \%SystemRoot%\Microsoft.NET\Framework\v1.0.nnnn\Temporary ASP.NET Files 目录下)。

  5. 可以在 Web 窗体中使用自定义的 .NET 数据类型吗?

    可以通过将包含自定义数据类型的 DLL 放在应用程序根目录的 bin 文件夹中来实现。当引用该类型时,ASP.NET 会自动加载 DLL。

  6. 列出可以在 Global.asax 中包含的事件处理程序。
    • 应用程序启动和结束事件处理程序
    • 会话启动和结束事件处理程序
    • 每个请求的事件处理程序
    • 非确定性事件处理程序
  7. View 状态是否可以防止篡改?

    可以通过在每个需要保护的 ASPX 文件中包含带有 EnableViewStateMac="true" 属性的 @ Page 指令来实现。另一种方法是在 Web.config 文件中包含 <pages enableViewStateMac="true" /> 语句。

  8. View 状态是否可以加密?

    可以通过将 EnableViewStateMac 设置为 true,并修改 Machine.config<machineKey> 元素为 <machineKey validation="3DES” />,或者将上述语句添加到 Web.config 来加密 View 状态。

  9. 在页面处理周期的哪个阶段 ViewState 可用?

    在 Page 加载期间,Init() 方法调用之后,Render() 方法调用之前,ViewState 可用。

  10. Web 控件是否支持级联样式表?

    所有 Web 控件都继承自基类 System.Web.UI.WebControls.WebControlCssClass 属性,该属性可用于控制 Web 控件的属性。

  11. 在 ASPX 文件中默认导入了哪些命名空间?

    默认导入以下命名空间。其他命名空间必须使用 @ Import 指令手动导入。

    • 系统
    • System.Collections
    • System.Collections.Specialized
    • System.Configuration
    • System.Text
    • System.Text.RegularExpressions
    • System.Web
    • System.Web.Caching
    • System.Web.Security
    • System.Web.SessionState
    • System.Web.UI
    • System.Web.UI.HtmlControls
    • System.Web.UI.WebControls
  12. 从 ASP.NET 应用程序发送电子邮件需要哪些类?

    要从 ASP.NET 应用程序发送电子邮件,需要使用 MailMessageSmtpMail 类。MailMessageSmtpMail 是 .NET Framework 类库的 System.Web.Mail 命名空间中定义的类。

  13. 为什么有些 Web 服务类派生自 System.Web.WebServices,而有些则不派生?

    那些使用 ApplicationSessionContextServerUser 等对象的 Web 服务类必须派生自 System.Web.WebServices。如果不使用这些对象,则无需派生。

  14. 什么是 VSDISCO 文件?

    VSDISCO 文件是启用 Web 服务动态发现的 DISCO 文件。ASP.NET 将 VSDISCO 链接到一个 HTTP 处理程序,该处理程序会扫描主机目录及其子目录中的 ASMX 和 DISCO 文件,并返回一个动态生成的 DISCO 文档。请求 VSDISCO 文件的客户端会收到一个看起来像静态 DISCO 文档的内容。

  15. 如何在 ASP.NET 中将文件上传到 Web 页面?

    可以通过使用 HtmlInputFile 类声明一个 <input type="file" runat="server"/> 标签实例。然后,可以声明一个 byte[] 来读取输入文件中的数据。之后可以将这些数据发送到服务器。

  16. 如何创建一个 ASPX 页面,使其能够定期刷新?

    可以使用下面的 META 标签作为触发器,每 n 秒自动刷新页面。

    <meta http-equiv="Refresh" content="nn">
  17. 如何使用密码初始化 TextMode 为“password”的 TextBox?

    不能使用 TextBoxText 属性为密码字段赋值。相反,可以使用其 Value 字段来实现此目的。

    <asp:TextBox Value="imbatman" TextMode="Password" 
                          ID="Password" RunAt="server" />
  18. 为什么在使用 HtmlInputFile 控件将文件上传到 Web 服务器时,控件的 PostedFile 属性总是显示 null?

    这是因为 multipart/form-data" 属性在 <form> 标签中丢失了。

  19. 当 Web 窗体加载时,如何将焦点设置到特定控件?

    可以通过使用客户端脚本来实现。

    document.forms[0].TextBox1.focus ()

    上面的代码将在页面加载时将焦点设置到名为 TextBox1TextBox 控件。

  20. System.Web.UI.Page 的 IsPostBack 属性是如何工作的?

    IsPostBack 检查 HTTP 请求是否附带包含 __VIEWSTATE__EVENTTARGET 参数的回发数据。如果没有这些参数,则不是回发。

  21. 什么是 WSDL?

    WSDL 是一种 XML 格式,用于将网络服务描述为一组端点,这些端点操作包含文档导向或过程导向信息的消息。操作和消息是抽象描述的,然后绑定到具体的网络协议和消息格式来定义一个端点。相关的具体端点组合成抽象端点(服务)。(来源:www.w3.org)

  22. 什么是 UDDI?

    UDDI 代表 Universal Description, Discovery, and Integration(通用描述、发现和集成)。它就像 Web 服务的“黄页”。它由 Microsoft、IBM 和 Ariba 维护,旨在提供有关所有供应商已注册 Web 服务的详细信息。可以查询 UDDI 来查找特定的 Web 服务。

  23. 是否可以从 WSDL 生成 ASP.NET Web 服务的源代码?

    可以使用 Wsdl.exe 工具(.NET Framework SDK)根据 WSDL 链接生成 ASP.NET Web 服务的源代码。

    示例:wsdl /server http://api.google.com/GoogleSearch.wsdl

  24. 为什么在使用 ASP.NET 文件上传控件上传大文件时会失败?

    出于安全原因,ASP.NET 限制了文件上传的大小。默认大小为 4 MB。可以通过修改 Machine.config<httpRuntime> 元素的 maxRequestLength 属性来更改此设置。

  25. 描述内联代码和代码隐藏的区别。

    内联代码与页面中的 HTML 一起编写。代码隐藏是写在单独文件中的代码,并由 .aspx 页面引用。

© . All rights reserved.