exel 里面 2.18453E-06 代表什么?

代码我在工作中遇到的许多 开發人员也难免会出错。在多年的 生产应用程序的发布过程中出现问题的 10 个缺陷以及可避免它们的方法所有示例均来自我对真实的公司构建真实的 Web 应用程序的亲身体验,在某些情况下我会通过介绍 应用程序。在出现母版页之前开发人员使用用户控件来提取公用内容,如頁眉和页脚即使在 不应该以这种方式运行。页面(和控件)对于输出缓存应该是不可知的那么,这代表什么意思

问题在于为用户控件启用输出缓存时,LoadControl 不再返回对控件实例的引用;相反它返回对 PartialCachingControl 实例的引用,而 PartialCachingControl 可能会也可能不会包装控件实例具体取决于控件的输絀是否被缓存。因此如果开发人员调用 LoadControl 以动态加载用户控件并且为了访问控件特定的方法和属性而转换控件引用,他们必须注意进行该操作的方式以便不管是否具有 OutputCache 指令,代码都可以运行

 说明动态加载用户控件以及转换返回的控件引用的正确方法。以下是其工作原理概要:

生产服务器中出现过两次这两次都是通过关闭输出缓冲来解决的。后来我了解到有一个比禁用输出缓存更好的解决方案以下是峩第一次遇到该问题时的情况。

当时的情况是这样的某个网站(我们在此称为 Web 领域中运行公共电子商务应用程序)与我的团队联系,抱怨他们遇到了“跨线程”错误使用 是在会话状态中存储数据的,由于某些原因用户会偶尔随机地连接到其他用户的会话。

我的一个团隊成员编写了一个诊断工具用来将每个 HTTP 请求和响应的关键要素(包括 Cookie 标头)记录到日志中。然后他将该工具安装在 正确地为全新会话汾配一个会话 ID 并返回 Set-Cookie 标头中的会话 ID。然后它会在下一个紧相邻的请求中返回相同的会话 ID(即,相同的 Set-Cookie 标头)即使该请求已经与一个有效的会话相关联并且正确提交了 Cookie 中的会话 ID。实际上 的源代码,让我们感到欣慰的是问题不在那。接着为了确保问题与应用程序宿主茬 Web 领域无关,我们只保留一个服务器在运行而关闭了所有其他服务器。问题仍然存在这并不意外,因为我们的日志显示匹配的 Set-Cookie 标头绝鈈会来自两个不同的服务器 Framework RNGCryptoServiceProvider 类生成这些 ID,并且会话 ID 的长度足以确保相同的 ID 决不会生成两次(至少在下一个万亿年内不会生成两次)除此之外,即使 RNGCryptoServiceProvider 错误地生成了重复的随机数字也无法解释 在两个页面中启用了输出缓存。我们关闭了输出缓存结果,应用程序运行数天洏没有发生一个跨会话问题此后,它运行了两年多都没有发生任何错误在具有不同应用程序和一组不同 Web 服务器的另一家公司中,我们看到完全相同的问题也消失了就像在 与 IIS 1 x 视图状态的一半大小,一个糟糕的 GridView 也可以容易地将浏览器和 Web 服务器之间的连接的有效带宽减少

您鈳以通过将 EnableViewState 设置为 false 来关闭单个控件的视图状态但某些控件(特别是 DataGrid)在不能使用视图状态时会失去某些功能。控制视图状态的更佳解决方案是将其保留在服务器上在 辅助进程中时),在会话状态中存储视图状态尤其有效相反,如果会话状态存储在数据库中则只有测試才能显示在会话状态中保留视图状态会提高还是降低性能。

将加载页适配器并使用返回的 SessionPageStatePersister 以保留所有页面状态包括视图状态。

使用自萣义页适配器的一个缺点是它全局性地作用于应用程序中的每一页如果您更愿意将其中一些页面的视图状态保留在会话状态中而不保留其他页面的视图状态,请使用 中显示的方法另外,如果用户在同一会话中创建多个浏览器窗口您使用该方法可能会遇到问题。

SQL Server 会话状態:另一个性能杀手

会话状态管理器对每个请求中的会话数据存储执行两个访问(一个读取访问和一个写入访问)而不管请求的页是否使用会话状态。

换句话说当您使用 SQL Server? 会话状态选项时,您在每个请求中都要付出代价(两个数据库访问)— 甚至在与会话状态无关的页媔的请求中这会直接对整个网站的吞吐量造成负面影响。

图 5 消除不必要的会话状态数据库访问

那么您应该怎么办呢很简单:禁用不使鼡会话状态的页中的会话状态。这样做总是一个好办法但是当会话状态存储在数据库中时,该方法尤其重要图 5 显示如何禁用会话状态。如果页面根本不使用会话状态请在其 Page 指令中包含 EnableSessionState="false",如下所示:

该指令阻止会话状态管理器在每个请求中读取和写入会话状态数据库洳果页面从会话状态中读取数据,但却不写入数据(即不修改用户会话的内容),则将 EnableSessionState 设置为 ReadOnly如下所示:

最后,如果页面需要对会话狀态进行读/写访问则省略 EnableSessionState 属性或将其设置为 true:

通过以这种方式控制会话状态,可以确保 编译一个包含相同属性的类并通过添加到页的配置文件属性提供对类实例的强类型访问。

配置文件灵活性很强它甚至允许将自定义数据类型用作配置文件属性。但是其中却存在一個问题,我亲眼看到该问题导致开发人员出差错 包含一个名为 Posts 的简单类,以及将 Posts 用作配置文件属性的配置文件定义但是,该类和该配置文件在运行时会产生意外的行为您能找出其中的原因吗?

问题在于 Posts 包含一个名为 _count 的私有字段该字段必须进行序列化和反序列化,才能完全冻结和重新冻结类实例但是 _count 却没有经过序列化和反序列化,因为它是私有的而且默认情况下 Framework 二进制序列化程序对类实例进行序列化和反序列化。该解决方案能够保持类本身的设计与 XML 序列化程序不同的是,二进制序列化程序序列化字段而不管是否可以访问。 显礻 Posts 类的修复版本并突出显示了更改的附带配置文件定义

您应该牢记的一点是,如果您使用自定义数据类型作为配置文件属性并且该数據类型具有必须序列化才能完全序列化类型实例的非公共数据成员,则在属性声明中使用 serializeAs="Binary" 属性并确保类型本身是可序列化的否则,将无法进行完整的序列化并且您还将浪费时间来尝试确定配置文件无法工作的原因。

在执行数据库查询并等待 15 秒或更长时间来获得返回的查詢结果时我经常对看到的实际的 应用程序中都会导致吞吐量的下降。

关于这个问题我以前已经详细地描述过所以在此就不再作过多的說明了。我只说一点就够了 会使随后的请求失败并出现 HTTP 503 错误。这种情况不是我们希望在 Web 生产服务器的生产应用程序上所乐见的

解决方案非异步页面莫属,这是 的 IAsyncResult 接口操作完成后,请求通过 IAsyncResult 通知 从池中提取另一个线程并完成对请求的处理值得注意的是,当 I/O 操作发生时没有占用线程池线程。这样可以通过阻止其他页面(不执行较长的 I/O 操作的页面)的请求在队列中等待从而显著地提高吞吐量。

您可以茬 MSDN?Magazine 的 中阅读有关异步页面的所有信息I/O 绑定而不是计算机绑定且需要很长时间执行的任何页面很有可能成为异步页面。

当我将关于异步頁面的信息告知开发人员时他们经常回答“那真是太棒了,但是我的应用程序中并不需要它们”对此我回答说:“你们的任何页面需偠查询数据库吗?它们调用 Web 服务吗您是否已经检查 应用程序都需要异步页面。请切记这一点!

以下是一个简单的配置指令但是每当在 應用程序中启用客户端模拟。它将代表客户端的访问令牌附加到处理请求的线程以便操作系统执行的安全性检查针对的是客户端身份而鈈是辅助进程身份。 应用程序中启用模拟以便可以使用文件系统权限来限制对页面的访问。如果 Bob 没有查看 应用程序中启用 Windows 身份验证时 應用程序中。但是内存使用量不足会通过强制垃圾收集更频繁地发生而影响性能即使是在 应用程序只完成请求文档所需吞吐量(每秒的請求数)的大约 1/100。我们以前所发现的问题是我们在不能正常运行的 Web 应用程序中发现的问题特有的 — 和我们所有人应该认真对待的教训

我們运行 SQL Server Profiler 并监视此应用程序和后端的数据库之间的交互情况。在一个更极端的案例中仅仅只是一个按钮单击,就导致数据库发生了 1,500 多个错誤您不能那样构建高性能的应用程序。良好的体系结构总是从良好的数据库设计开始不管您的代码的效率有多高,如果它被编写不佳嘚数据库所拖累就会不起作用。

糟糕的数据访问体系结构通常源于下面的一个或多个方面:

拙劣的数据库设计(通常由开发人员设计洏不是数据库管理员)。

}

mur1560二极管参数测量 - 热门商品专区

mur1560二極管参数测量 - 热门厂家专区






mur1560二极管参数测量 - 优质问答专区

百度爱采购为您提供mur1560二极管参数测量专区包括mur1560二极管参数测量热门商品专区、mur1560②极管参数测量热门供应商专区、mur1560二极管参数测量相关推荐专区等。 想要了解更多mur1560二极管参数测量相关内容可以到百度爱采购平台。您鈳以查看二极管价格行情、 二极管相关专业参数、各种型号二极管、二极管相关热门品牌和分类、 二极管各种类型区别和特点等内容

mur1560二極管参数测量 - 优质图片专区

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信