小编emz*_*ero的帖子

使用Capistrano部署时保留未版本控制的文件

每次我在远程服务器上运行cap deploy时,我都会丢失一些未版本控制的文件,因为capistrano会创建一个新目录并检查其中的头部修订版.但有一些文件没有版本化,如用户头像(回形针)和上传的图像,这些文件无法复制到新的当前版本.

我该如何解决这个问题?

谢谢!

deployment capistrano ruby-on-rails

8
推荐指数
2
解决办法
5465
查看次数

如何为名称存储在表中的多个数据库执行T-SQL

嘿伙计们,所以这就是交易.

我在同一台服务器上有几个数据库(SqlServer 2005),它们具有相同的模式但数据不同.

我有一个额外的数据库,其中有一个表存储所提到的数据库的名称.

所以我需要做的是迭代这些数据库名称并实际"切换"到每个数据库(使用[dbname])并执行T-SQL脚本.我清楚了吗?

让我举个例子(从真实的简化):

CREATE TABLE DatabaseNames
(
   Id   int,
   Name varchar(50)
)
INSERT INTO DatabaseNames SELECT 'DatabaseA'
INSERT INTO DatabaseNames SELECT 'DatabaseB'
INSERT INTO DatabaseNames SELECT 'DatabaseC'
Run Code Online (Sandbox Code Playgroud)

假设DatabaseA,DatabaseB和DatabaseC是真实的现有数据库.所以我要说我需要在这些数据库上创建一个新的SP.我需要一些循环遍历这些数据库并执行我指定的T-SQL脚本的脚本(可能存储在varchar变量或任何地方).

有任何想法吗?

谢谢!

database iteration sql-server-2005

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

如何使用ASP.NET Core基于资源的授权,而无需在所有地方重复if / else代码

我有一个dotnet core 2.2 api,其中包含一些控制器和操作方法,需要根据用户声明和所访问的资源进行授权。基本上,每个用户可以为每个资源使用0个或多个“角色”。全部使用ASP.NET身份声明完成。

因此,我的理解是我需要利用基于资源的授权。但是,两个示例几乎都相同,并且每个操作方法都需要显式的命令式if / else逻辑,这就是我要避免的方法。

我希望能够做类似的事情

[Authorize("Admin")] // or something similar
public async Task<IActionResult> GetSomething(int resourceId)
{
   var resource = await SomeRepository.Get(resourceId);

   return Json(resource);
}
Run Code Online (Sandbox Code Playgroud)

在其他地方,将授权逻辑定义为策略/过滤器/需求/其他,并可以访问当前用户声明和resourceId端点接收的参数。因此,我可以看到用户是否有一个声明,表明该用户对该特定用户具有“管理员”角色resourceId

c# asp.net authorization asp.net-identity asp.net-core

7
推荐指数
2
解决办法
1355
查看次数

Web部署删除IIS网站自定义配置

我正在使用Web Deploy(来自VS2013)将ASP.NET MVC站点发布到IIS 7.5.

我通过IIS管理器添加了一些URL重写规则和自定义HTTP响应头.

问题是每次部署新版本的站点时,都会删除此额外配置.

这是预期的行为还是有问题?如何在每次部署时保留这些自定义设置?

UPDATE

所以我明白我需要将这些变化放入web.config.我试图把它们放进去,Web.Release.config但它没有被添加到部署中web.config.我想我错过了一些XDT:Transform规则.

这就是我在我的内容Web.Release.config(是的,发布配置文件正在使用此版本配置).

<configuration>
    <!-- some other stuff -->
    <system.webServer>
        <rewrite>
          <rules>
            <rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">
              <match url="*" />
              <conditions>
                <add input="{HTTP_HOST}" pattern="mydomain.com" />
              </conditions>
              <action type="Redirect" url="http://www.mydomain.com/{R:0}" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

asp.net iis asp.net-mvc iis-7.5 webdeploy

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

使用Databricks Connect时如何在Scala中正确访问dbutils

我正在使用Databricks Connect从IntelliJ IDEA(Scala)在本地Azure Databricks群集中运行代码。

一切正常。我可以在IDE中本地连接,调试和检查。

我创建了一个Databricks作业来运行我的自定义应用程序JAR,但由于以下异常而失败:

19/08/17 19:20:26 ERROR Uncaught throwable from user code: java.lang.NoClassDefFoundError: com/databricks/service/DBUtils$
at Main$.<init>(Main.scala:30)
at Main$.<clinit>(Main.scala)
Run Code Online (Sandbox Code Playgroud)

我的Main.scala类的第30行是

val dbutils: DBUtils.type = com.databricks.service.DBUtils
Run Code Online (Sandbox Code Playgroud)

就像本文档页面上的描述一样

该页面显示了一种访问在本地和群集中均可使用的DBUtil的方法。但是该示例仅显示了Python,而我正在使用Scala。

以既可以使用databricks-connect在本地工作又可以在运行JAR的Databricks作业中工作的方式访问它的正确方法是什么?

更新

似乎有两种使用DBUtils的方法。

1)这里描述的DbUtils类。引用文档,此库允许您构建和编译项目,但不能运行它。这不允许您在集群上运行本地代码。

2)此处描述 Databricks Connect 。这使您可以在Databricks集群中运行本地Spark代码。

问题在于这两种方法具有不同的设置和程序包名称。似乎没有一种在本地使用Databricks Connect的方法(在群集中不可用),但是随后通过sbt / maven添加了使用DbUtils类的jar应用程序,以便群集可以访问它。

scala databricks azure-databricks databricks-connect dbutils

6
推荐指数
2
解决办法
125
查看次数

Rails i18n:翻译缺失问题,区域设置未定义

我有一个Rails 2.3.8应用程序的问题.我正在使用rails i18n来制作不同语言的网站.除了一个地方,一切都在完美,无处不在.

注册成功后,我会:

flash[:notice] = t 'path.to.locale.key'
Run Code Online (Sandbox Code Playgroud)

就像我在其他地方一样.

但这会产生以下结果:

translation missing: 'locale.path.to.locale.key' not found
Run Code Online (Sandbox Code Playgroud)

它似乎没有加载当前的语言环境(否则它会说'en',或'es',或者不是'locale').

任何可能导致这种情况的想法?

谢谢

locale ruby-on-rails internationalization

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

如何内联Bootstrap 3进度条?

我希望能够在Bootstrap 3进度条旁边放一些内联元素,如下所示:

Some inline element [progress bar]
Some inline element [progress bar]
Some inline element [progress bar]
Run Code Online (Sandbox Code Playgroud)

我试过以下没有运气:

  • 添加display: inline- 栏不显示
  • 添加float: right- 栏不显示
  • 使用表格来实现布局 - 栏内没有显示 <td>

这是我的尝试的bootply:http://www.bootply.com/9jNcnGRkUK

html css twitter-bootstrap

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

使用Task.WaitAll()时如何获取任务的返回值

我需要获得Task<List<string>>并行执行的多个返回值并将它们合并为一个新的List<string>.

这就是我目前所拥有的.正如您在小提琴中看到的那样,任务正在并行执行(执行时间约为1秒).问题是不知道如何List<string>从每次执行中获取返回值(一个对象),因此我可以合并它们.

小提琴:https://dotnetfiddle.net/91YqkY

码:

using System;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        var filters = new List<string>
        {
            "A", "B", "C"
        }

        ;
        var api = new API();
        var TaskList = new List<Task>();
        foreach (var f in filters)
        {
            var LastTask = new Task<List<String>>(() =>
            {
                return api.GetArray(f);
            }

            );
            LastTask.Start();
            TaskList.Add(LastTask);
        }

        Task.WaitAll(TaskList.ToArray());
        foreach (var t in TaskList)
        {
            // I …
Run Code Online (Sandbox Code Playgroud)

.net c# parallel-processing multithreading task

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

如何使自定义用户声明在 API 请求中可用

我有一个解决方案,包括:

  • ASP.NET Core 2.1 在 ASP.NET Identity Core 之上运行 IdentityServer4。
  • ASP.NET Core 2.1 Web API 设置为使用 IdentityServer 作为身份验证提供程序。
  • 使用 javascript 库的 React SPA Web 应用程序oidc-client

当我创建新用户时,我设置了一些保存在AspNetUserClaims表中的自定义声明,如下所示: 在此输入图像描述

然后,在我的 API 项目中,在控制器内我想要获取经过身份验证的用户的用户声明。
我本来希望this.User.Claims得到这些,但结果却返回了以下内容,这似乎是与客户端应用程序相关的声明,而不是与用户相关的声明。

在此输入图像描述

如何address, location, tenant_role从 Web API 项目内的控制器访问这些自定义用户声明 ( )?
请记住,API 项目无权访问该类UserManager或任何ASP.NET Identity Core相关内容。

c# asp.net claims-based-identity asp.net-identity-3 identityserver4

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

如何在 ETL 管道中正确截断临时表?

我们有一个 ETL 管道,它为上传到存储帐户 (Azure) 的每个 CSV 运行。它在 CSV 上运行一些转换并将输出写入另一个位置,也作为 CSV,并调用数据库 (SQL Azure) 上的存储过程,该过程将生成的 CSV 摄取 (BULK INSERT) 到一个临时表中。

该管道可以同时执行,因为多个资源可以将文件上传到存储。因此,临时表经常插入数据。

然后,我们有一个计划的 SQL 作业(弹性作业),它触发一个 SP,将数据从临时表移动到最终表中。此时,我们希望截断/清空临时表,以便我们不会在下次执行作业时重新插入它们。

问题是,我们无法确定在从暂存表加载到最终表和 truncate 命令之间,没有任何新数据写入暂存表可以在没有先插入最终表的情况下被截断。

有没有办法在我们将数据复制到最终表时锁定临时表,以便尝试写入它的 SP(从 ETL 管道调用)只会等到锁定被释放?这是否可以通过使用事务或一些手动锁定命令来实现?

如果没有,处理这个问题的最佳方法是什么?

sql-server etl locking staging-table azure-sql-database

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