小编HNG*_*NGO的帖子

Windows上的Rails延迟工作?

我开始使用Rails 3.x开发一个站点,我需要并行运行多个作业.我现在被锁在Windows中.

我能够使用"佣金工作:工作"来延迟工作(collectiveidea)工作,但似乎它一次运行1个工作.我试图运行"ruby script\delayed_job",但Windows下没有"fork".

在Win下,delayed_job可以并行运行吗?除了delayed_job,我还有其他选择吗?

谢谢.

windows ruby-on-rails delayed-job

6
推荐指数
1
解决办法
1355
查看次数

IIS7 上的 ASP.NET Web API - 未找到 404

我有一个简单的 web api 项目。当我使用 VS2010 下的发布功能在 Win 7 上的 IIS 7.5 上部署它时,它工作正常。但是当我将它部署到 Windows server 2008 上的 IIS 7 时(msinfo32 显示版本是 6.0.6002 service pack 2),它返回 404.0 Not Found 对于在 IIS 7.5 上工作的相同 GET 请求

Module IIS Web Core 
Notification MapRequestHandler 
Handler StaticFile 
Error Code 0x80070002 
Run Code Online (Sandbox Code Playgroud)

我已经用谷歌搜索并完成了所有我能做的建议,但没有一个对我有用。

知道如何修复它吗?

谢谢

asp.net iis

5
推荐指数
1
解决办法
7468
查看次数

异步调用后跨线程异常

下面的代码块仅对 Npgsql 导致跨线程无效操作异常(不包括 sqlclient、sqlite、mysql、文件读取异步)。

private async void button1_Click(object sender, EventArgs e)
{
   var strBuilder = new Npgsql.NpgsqlConnectionStringBuilder()
   {
        Host = "localhost",
        Username = "postgres",
        Password = "password"
   };
   using (var conn = new Npgsql.NpgsqlConnection(strBuilder.ConnectionString))
   {
      try
      {
          await conn.OpenAsync();
          if (conn.State ==ConnectionState.Open)
          {
             MessageBox.Show("Connected");
             this.button1.Text = "CROSS-THREAD-With-NPGSQL";
          }
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

我查看了 Npgsql 的代码并找到了此链接: https://github.com/npgsql/npgsql/blob/2dd46e7c544caf3302ca7b89dd888a16dccf5c2c/src/Npgsql/PGUtil.cs

文件底部写道:

该机制用于在执行 Npgsql 代码时临时将当前同步上下文设置为 null,从而使所有等待延续在线程池上执行。这取代了在任何地方放置ConfigureAwait(false)的需要,并且应该在所有表面异步方法中使用,无一例外。

我从 Roji(Npgsql 存储库的所有者)那里得到了相当多的解释,但我需要理解为什么我没有看到其他驱动程序的类似问题。npgsql 临时禁用 SynchronizationContext 的方式是否被认为是最佳实践?我正在尝试查看其他驱动程序的源代码,但这需要一段时间,所以我希望我能得到一些帮助,以朝着正确的方向前进。

编辑 1:Stephen Cleary 在下面给出了非常详细的答案,但我也想在这里发布我的一些发现。它可能会帮助其他人。2016 年 9 月 24 日,npgsql 用 NoSynchronizationContextScope 替换了所有的ConfigureAwait(false)。正如 Stephen 所解释的,NoSynchronizationContextScope …

c# database multithreading synchronizationcontext async-await

1
推荐指数
1
解决办法
833
查看次数