- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是一个艰难的过程。使用完全相同的查询字符串,完全相同的以下代码:
using (var db = new SqlConnection(queryString))
{
await db.OpenAsync();
var results = await db.ExecuteSomethingAsync...;
db.Close();
{
从 Windows 应用程序运行时会起作用。但是,当从 IIS Express 或 IIS 7 运行时,它将永远卡在 await OpenAsync()
中。如果我用 db.Open()
替换该行,它仍然可以工作。有什么建议吗?
最佳答案
await
在 ASP.NET 中需要谨慎对待,因为同步上下文想要序列化单个请求的工作。您发布的代码本身可能没问题 - await
不会阻塞。但是,我希望为此调用链中的某处调用 .Wait()
或访问 .Result
,而不是 await
。
这里有几个选项:
.Wait()
或 .Result
(或类似的)根本 - 相反,只使用 await
并使其成为适当的异步操作或者,使用 .ConfigureAwait(false)
告诉它忽略同步上下文;不幸的是,这需要添加到所有您await
的地方,即
await db.OpenAsync().ConfigureAwait(false);
var results = await db.ExecuteSomethingAsync(...).ConfigureAwait(false);
或者,只使用同步代码 - 在大多数情况下,sql 将非常运行 - 所以将它推到异步不一定帮助尽可能多你可能认为;显然,这可能因用法而异;但这里要牢记的一个关键点是 ASP.NET 本身已经是线程化的——这并不是说整个服务器在这里都停止了
关于.net - DbConnection.Open() 有效,但 dbConnection.OpenAsync() 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16583792/
我正在将我们的 DAL 更改为 async DAL。 看着: await _conn.OpenAsync().ConfigureAwait(false); 我看到有一个用于打开连接的异步方法。但是为什
这是一个艰难的过程。使用完全相同的查询字符串,完全相同的以下代码: using (var db = new SqlConnection(queryString)) { await db.Open
我在网上搜索了一段时间。但是没有找到我的问题的明确答案。在连接到数据库时我应该使用“using”还是我可以直接使用 try-catch-finally?我的意思是: 我不知道是应该在每次完成与数据库的
要连接到 SQLite 数据库,相当简单:您将驱动程序和路径传递给 SQLite 文件。 其他 DBI - 兼容的数据库后端(PostgreSQL、MySQL 等),您可以传递给 dbConnect
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Close and Dispose - which to call? 我的数据层中的许多函数不受 try-c
我有一个名为 DatabaseHelper 的类,它包装了一个 DbConnection。为 using 语句设置此类的正确方法是什么?我已经实现了 IDisposible,但我不确定应该在何时何地调
我正在研究MySQL数据。我使用 dbConnect 函数连接到数据库并使用 dbReadTable 读取表。 我的问题是:如果我开始使用 tidyr 和 dplyr 等清理数据以使其整洁,这是否会更
我需要在数据库上执行一个存储过程。这是我到目前为止得到的有效方法: protected DbProviderFactory dbProviderFactory; this.dbProviderFact
我计划编写一个可以同时适用于 SQL Server 和 MySQL 的 DataConnection 库。 由于SqlConnection和MySqlConnection都是从DbConnection
我正在尝试连接到用户输入的服务器。当服务器不存在时,我想给最终用户一个快速反馈,以便他可以更正他输入的内容。 有什么方法可以在尝试连接之前测试服务器是否存在? 谢谢 最佳答案 您的 DBConnect
我有一个可以同时从数百个线程访问的单例数据库类。每个线程都有自己的连接。由于我无法控制线程数,所以我需要限制并发连接数。我决定使用如下所示的信号量。现在,连接总是在 using block 中分配,因
这是我从数据库中选择数据的函数: public DataTable SelectDataTable(string selectStatement, string connectionStrin
我正在尝试提高复杂数据库读取操作的性能。我发现一些代码,在有限的测试中,执行速度比以前使用各种技术(包括手动调整的存储过程)的尝试快得多。它使用 Dapper,但 Dapper 并不是主要的关注点。
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 2 年前。 Improve this qu
我在一个应用程序中找到了这段代码 Database database = DatabaseFactory.CreateDatabase("connection string"); DbConnecti
“EntityConnection 只能用关闭的 DbConnection 构造”这是我在尝试构建提供开放连接的实体连接时遇到的问题。有一个 transactionscope 打开,我不想打开一个新连
当您调用 DbConnection.GetSchema 时,您会为其提供您感兴趣的集合的字符串名称。我在任何地方都找不到集合列表。集合列表是不可变的还是因数据库类型(orcle、sql server
我有一个传递给函数的连接字符串,我需要基于这个字符串创建一个基于 DbConnection 的对象(即 SQLConnection、OracleConnection、OLEDbConnection 等
我正在尝试开始使用 sqlite + C#。我发现 SQLite-lib 不是标准库,因此我在每个引用中添加了它。 由于我更频繁地使用这个类,所以我考虑创建一个自己的类来处理所有事情。 现在,这是我的
我有一个如下所示的单例类,用于访问数据库连接 public class DBConnection { private static volatile DBConnection instance
我是一名优秀的程序员,十分优秀!