gpt4 book ai didi

azure - 将 Umbraco 部署到 SQL Azure

转载 作者:行者123 更新时间:2023-12-03 03:19:09 24 4
gpt4 key购买 nike

我已成功将 Umbraco 4.7 实现到 Windows Azure 网站和 SQL Azure,但有时我会遇到与此类似的错误:

SQL helper exception in ExecuteScalar ---> System.Data.SqlClient.SqlException: A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) ---> 

Umbraco 似乎不管理重试逻辑(sql azure transient 故障处理)。有人知道在 umbraco 方面有什么非创伤性的方法来实现这一点吗?

最佳答案

Amhed,没有简单的方法可以做到这一点,在 Azure 中使用 Umbraco 的人通常会遇到导致连接问题的 session 状态问题,但正如您所说,您只捕获了 1%,这意味着您正在捕获 transient 错误。您可能已经在这里看到了讨论

http://our.umbraco.org/forum/core/general/27179-SQL-Azure-connectivity-issues?p=1

最终效果是您必须采用 umbraco 代码库并使用其中的重试框架重建它。这会给使用 Umbraco 和发布 future 版本带来严重的开销。您最好游说 Umbraco 核心团队建立完整的重试框架并支持它。 (我们甚至不谈论安全问题;)

这可能不是您想听到的,但实际上它是滚动您自己的数据层时间。

说了这么多,我去看了一下:;)(因为这确实让我对其他东西感兴趣)

作为起点,虽然从查看他们正在使用的 Umbraco 源代码

Microsoft.ApplicationBlocks.Data

作为建立连接和执行 SQL 命令的基础

来自查看 umbraco.DataLayer.SqlHelpers.SqlServer.SqlServerHelper

使用 SH = Microsoft.ApplicationBlocks.Data.SqlHelper;

所以我的猜测是你需要替换这个 block 。在互联网上进行快速(脏)搜索

http://www.sharpdeveloper.net/source/SqlHelper-Source-Code-cs.html

不过,你可以回顾一下类(class)来确定。

然后您可以使用 transient 故障处理框架进行重建,然后您可以有效地降低 dll 更改的潜力(著名的遗言)。

但你至少可以得到

使用 (ReliableSqlConnection conn = new ReliableSqlConnection(connString, retryPolicy))

很容易上那种类型的课,还有更可爱的东西。

http://msdn.microsoft.com/en-us/library/hh680899(v=pandp.50).aspx

如果我要这样做,我会从这里开始,并进入那个级别。

我不确定这是否会覆盖 100% 的连接集,因为我在 umbraco 代码库中没有积极工作,所以这是最好的猜测,但查看源代码,我将从这里开始并进行更改,看起来是您的最好的起点。

嗯,

詹姆斯

关于azure - 将 Umbraco 部署到 SQL Azure,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15753696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com