小编ssm*_*ith的帖子

为什么 docker-compose 突然失败并出现错误内部加载元数据?

我已经运行 docker-compose build 好几天了,每天很多次,并且没有更改我的 DOCKERFILEs 或 docker-compose.yml。突然一个小时前我开始得到这个:

Building frontdesk-api
failed to get console mode for stdout: The handle is invalid.
[+] Building 10.0s (3/4)
 => [internal] load build definition from Dockerfile                       0.0s
[+] Building 10.1s (4/4) FINISHED
 => [internal] load build definition from Dockerfile                       0.0s
 => => transferring dockerfile: 32B                                        0.0s
 => [internal] load .dockerignore                                          0.0s
 => => transferring context: 2B                                            0.0s
 => ERROR [internal] load metadata for mcr.microsoft.com/dotnet/sdk:5.0.  10.0sailed to do request: Head https://mcr.microsoft.com/v2/dotnet/sdk/manifests/5.0.201-buster-slim: dial tcp: lookup mcr.microsoft.com on …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

96
推荐指数
7
解决办法
25万
查看次数

推荐一个C#任务调度库

我正在寻找一个C#库,最好是开源的,它可以让我以相当大的灵活性安排任务.具体来说,我应该能够安排每N个单位时间运行的事情以及"XXXX时间的每个工作日"或"XXXX时间的每个星期一".比这更多的功能会很好,但不是必需的.这是我想在Azure WorkerRole中使用的,它立即排除Windows计划任务,"at","Cron"以及需要安装和/或GUI操作的任何第三方应用程序.我正在寻找一个图书馆.

c# scheduled-tasks azure

51
推荐指数
4
解决办法
4万
查看次数

DDD - 强制使用小聚合根的不变量

我第一次尝试使用DDD,我遇到了聚合设计的问题.

我的申请包含3个实体; 图,节点,链接.这些实体中的每一个都有一个name属性,可以由用户修改(我认为'name'不适合作为Entity id).图表包含节点集合,节点具有传出链接集合(出于此问题的目的,忽略传入链接是安全的).每个节点一次只能与一个图形关联(但可以在图形之间移动),类似地,每个链接在任何给定时间只能与一个节点相关联(但可以移动).

我试图强制执行的不变量是所有实体名称在其父集合中是唯一的.使用上面描述的体系结构,不变量在实际集合上,因此我认为集合所有者(图形和节点)都应该是聚合根.

我遇到的问题是如何在Node上强制执行名称不变量?在链接上它很容易,因为它隐藏在节点AR内部,因此节点可以确认所有链接重命名/移动不会破坏这个不变量.但据我所知,没有什么可以阻止Node的直接重命名,这可能会破坏不变量.最终的一致性在这里不是一个可接受的选择,这必须是一个真正的系统不变量.

我正在考虑的方法是让Node.Rename()实际强制执行不变量,但我担心的是这涉及查看其父Graph以检查重命名是否有效.这并不"感觉"正确 - 感觉Graph应该是强制执行此命名空间约束的那个,并且Node根本不应该知道它.

我希望这是有道理的,我期待听到人们的想法.

编辑:上面提供的域模型是整个域的简化子集.对于在单个AR中持有的所有实体来说太复杂了......

domain-driven-design invariants aggregateroot

9
推荐指数
2
解决办法
3920
查看次数

如何使用StructureMap注册表在单独的项目中配置EF Core?

我正在尝试在Visual Studio中设置一个解决方案,该解决方案将所有EF Core文件放在一个项目(Infrastructure)中,与我的ASP.NET Core Web项目分开.此外,我想防止开发人员意外地使用基础结构项目中的类型,因此我试图避免从Web到基础结构的引用.这可以在ASP.NET 5/EF 6中轻松完成,如下所述:https: //ardalis.com/avoid-referencing-infrastructure-in-visual-studio-solutions

但是,在ASP.NET Core中,我们在Web项目的Startup.ConfigureServices()方法中配置EF Core:

    public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        string dbName = Guid.NewGuid().ToString();
        services.AddDbContext<AppDbContext>(options =>
            options.UseInMemoryDatabase(dbName));

        services.AddMvc()
            .AddControllersAsServices();

        // use StructureMap
        var container = new Container();
        container.Configure(config =>
        {
            config.Scan(_ =>
            {
                _.AssembliesAndExecutablesFromApplicationBaseDirectory();
                _.WithDefaultConventions();
                _.LookForRegistries();
            });

            config.Populate(services);
        });

        return container.GetInstance<IServiceProvider>();
    }
Run Code Online (Sandbox Code Playgroud)

有没有办法将AddDbContext逻辑移出Startup我的基础设施项目?我已经在Infrastructure项目中有一个StructureMap注册表,所以如果有办法从那里连接所需的服务,它将有权访问DbContext类型,因为它在该项目中:

public class InfrastructureRegistry : Registry
{
    public InfrastructureRegistry()
    {
        For(typeof(IRepository<>)).Add(typeof(EfRepository<>));
    }
}
Run Code Online (Sandbox Code Playgroud)

您可以在此分支中查看项目的当前状态:https: //github.com/ardalis/cleanarchitecture/tree/ardalis/projectref

我的目标是将项目引用从Web移除到基础结构,但仍然有解决方案在启动时加载AppDbContext.

structuremap entity-framework-core asp.net-core

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

如何使用LLBLGen Pro过滤掉不属于多对多关系的实体?

我有一些代码能够检索包含特定关系的所有实体,如下所示:

        var bucket = new RelationPredicateBucket();
        bucket.Relations.Add(MessageEntity.Relations.MessageTemplateReferenceEntityUsingMessageId);
        var messageEntities = new EntityCollection<MessageEntity>();
        using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
        {
            myAdapter.FetchEntityCollection(messageEntities, bucket);
        }
Run Code Online (Sandbox Code Playgroud)

效果很好.现在,我想让Message表中的所有实体在MessageTemplate xref表中没有对应的行.也就是说,MessageEntity.Relations.MessageTemplateReferenceEntityUsingMessageId为null/false /不存在.

这是一个惊人的黑客攻击,我的一个队友几年前做过这项工作(上面代码的实体集合在下面的templatedMessages中):

bucket.PredicateExpression.Add(MessageFields.Id
 != templatedMessages.Select(m =>
 m.Id).ToArray());
Run Code Online (Sandbox Code Playgroud)

这实际上是有效的,直到最近表中templatedMessages的数量增长到2100以上,并且该方法开始抛出这些异常:

传入的表格数据流(TDS)远程过程调用(RPC)协议流不正确.此RPC请求中提供的参数太多.最高为2100.

显然,传递SQL应该避免的完整ID列表并不是非常有效.LLBLGen中最好的方法是什么?在SQL中我会做类似的事情:

SELECT m.* FROM Message m 
WHERE NOT EXISTS (SELECT 1 FROM MessageTemplate mt WHERE mt.MessageID = m.ID)
Run Code Online (Sandbox Code Playgroud)

我可以在LLBLGen中这样做吗?

llblgenpro llblgen

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

如何使用StructureMap映射的IRepository <T>约定

在StructureMap中有一种方法可以用一行或一个约定来做这种重复映射吗?

    For<IRepository<Mailout>>().Use<MailoutRepository>();
    For<IRepository<MailServer>>().Use<MailServerRepository>();
    For<IRepository<MailoutStatus>>().Use<MailoutStatusRepository>();
    For<IRepository<MailoutTemplate>>().Use<MailoutTemplateRepository>();
    For<IRepository<Publication>>().Use<PublicationRepository>();
    For<IRepository<Recipient>>().Use<RecipientRepository>();
Run Code Online (Sandbox Code Playgroud)

structuremap

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

如何使用app_start或webactivator注册区域?

我想避免打电话

AreaRegistration.RegisterAllAreas()

在我的global.asax中,因为我试图将所有启动逻辑移动到App_Start文件夹中的各个类中.但是,我没有成功地让它发挥作用.第一个选项尝试使用这样的代码:

[assembly: PreApplicationStartMethod(typeof(Startup), "PreInit")]
namespace Foo
{
  public class Startup {}
}
Run Code Online (Sandbox Code Playgroud)

PreApplicationStartMethod来自System.Web名称空间的位置.在这种情况下,对寄存器区域的调用过早发生.

第二种方法基于David Ebbo的这篇文章,使用WebActivator:using System.Web.Mvc;

    [assembly: WebActivatorEx.PostApplicationStartMethod
(typeof(AreaDemo.AreaConfig), "RegisterAreas")]
    namespace AreaDemo
    {
        public class AreaConfig
        {
            public static void RegisterAreas()
            {
                AreaRegistration.RegisterAllAreas();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,尽管没有抛出错误,但尝试导航到该区域失败(好像注册从未发生过).

使用程序集指令而不是从Global.asax直接调用,从启动类中注册ASP.NET MVC 5中的区域的正确方法是什么?

更新1:这是我的AreaRegistration代码:

public class AdminAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "Admin";
        }
    }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute(
            "Admin_default",
            "Admin/{controller}/{action}/{id}",
            new { controller = "Home", action = "Index", …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-areas webactivator

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

ASP.net MVC 5 服务器或客户端中的缓存位置

我正在学习 ASP.Net MVC 5 教程,并了解了缓存。但我无法理解是什么决定了我应该在客户端还是服务器上缓存。

这是代码片段。

对于客户:

[OutputCache(Duration = 86400, Location = OutputCacheLocation.Client)]
public ActionResult SelectLocation()
{
}
Run Code Online (Sandbox Code Playgroud)

对于服务器:

[OutputCache(Duration = 86400, Location = OutputCacheLocation.Server)]
public ActionResult SelectLocation()
{
}
Run Code Online (Sandbox Code Playgroud)

问题:有人可以告诉我什么时候应该应用客户端缓存以及什么时候应该使用服务器缓存。我应该寻找的缺点或任何后果?

c# asp.net asp.net-mvc caching asp.net-mvc-5

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

dotnet build使用dotnet在docker容器中失败:2.1-sdk

我正在尝试将docker支持添加到现有的ASP.NET Core 2.1 Web应用程序中.它在dotnet build命令期间失败,说它无法加载共享库kernel32.dlllibkernel32.dll.我有以下Dockerfile

FROM microsoft/dotnet:2.1-aspnetcore-runtime AS base
WORKDIR /app
EXPOSE 80

FROM microsoft/dotnet:2.1-sdk AS build
WORKDIR /src
COPY . .
RUN ls -la
WORKDIR /src/WebRazorPages
RUN ls -la
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app

FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "WebRazorPages.dll"]
Run Code Online (Sandbox Code Playgroud)

它运行到dotnet构建步骤没有错误,但随后在找到共享文件作为目标文件构建过程的一部分时失败.完整输出如下所示:

1>------ Build started: Project: WebRazorPages, Configuration: …
Run Code Online (Sandbox Code Playgroud)

docker asp.net-core-2.0

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

如何在 Groovy 2.4 中计算 sha256 哈希值

我正在尝试计算 Groovy 版本 2.4.16 中的 sha256 哈希值。这是 jmeter 测试的一部分,这是它支持的 Groovy 版本,我认为我无法更改它。我知道在 Groovy 2.5 中您可以使用如下代码

def challenge = verifier.digest('SHA-256');
log.info 'challenge' + challenge
Run Code Online (Sandbox Code Playgroud)

但这在 2.4 中不起作用/不存在。我怎样才能在 Groovy 2.4 中做到这一点?

我用上面的代码得到的错误是:

javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.digest() is applicable for argument types: (java.lang.String) values: [SHA-256]
Possible solutions: getAt(java.lang.String), next(), size(), toSet(), size(), toList()
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:324) ~[groovy-all-2.4.16.jar:2.4.16]
    at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:72) ~[groovy-all-2.4.16.jar:2.4.16]
    at javax.script.CompiledScript.eval(Unknown Source) ~[?:1.8.0_221]
    at org.apache.jmeter.util.JSR223TestElement.processFileOrScript(JSR223TestElement.java:223) ~[ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.modifiers.JSR223PreProcessor.process(JSR223PreProcessor.java:44) [ApacheJMeter_components.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.runPreProcessors(JMeterThread.java:935) [ApacheJMeter_core.jar:5.1.1 r1855137]
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:537) [ApacheJMeter_core.jar:5.1.1 r1855137] …
Run Code Online (Sandbox Code Playgroud)

groovy jmeter sha256 jmeter-5.0

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

VS2010数据库项目部署错误SQL01268目录查找失败

我的VS2010数据库部署在构建服务器上失败,构建服务器上安装了SQL Server 2008 R2.这是相关的输出:

创建Acme.Database ...

D:\ TeamCity\BuildAgent\Work\da2fc5ebd5805d44\src\Acme.Database\sql\Acme.Database.sql(30,0):错误SQL01268:.Net SqlClient数据提供者:消息5133,级别16,状态1,行1文件"C:\ Program Files\Microsoft SQL Server**MSSQL10.MSSQLSERVER**\MSSQL\DATA\Acme_Database_log.ldf"的目录查找失败,出现操作系统错误3(系统找不到指定的路径.).

D:\ TeamCity\BuildAgent\Work\da2fc5ebd5805d44\src\Acme.Database\sql\Acme.Database.sql(30,0):错误SQL01268:.Net SqlClient数据提供者:消息1802,级别16,状态1,行1 CREATE DATABASE失败.无法创建列出的某些文件名.检查相关错误.

批处理执行时发生错误.

实际路径在这里:

C:\ Program Files\Microsoft SQL Server**MSSQL10_50.MSSQLSERVER**\MSSQL\DATA\Acme_Database.mdf

我在数据库项目中找到的路径的唯一引用是在根文件夹中,该文件名为:

PRIMARY.Acme_Database.sqlfile.sql

它包含一个ALTER DATABASE语句,我更改为使用_50路径,但这并没有解决问题.

我不确定db项目为什么需要知道实际的数据库MDF文件在哪里位于哪里 - 我原以为它可以只通过TSQL连接到它,但无论如何我都无法让项目部署有这个错误,将不胜感激任何帮助.

visual-studio-2010 visual-studio-dbpro dbproj

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

如何使用调度程序将DropDownList绑定到编辑器模板中的DataSource?

我正在尝试自定义我对Kendo UI kendoScheduler小部件的使用.我在为调度程序中添加/编辑约会时弹出的可编辑窗口指定了一个自定义模板,如下所示:

editable: {
                template: $("#editor").html()
            },
Run Code Online (Sandbox Code Playgroud)

我正在定义这样的模板:

<script id="editor" type="text/x-kendo-template">
<h3>Edit Appointment</h3>
   <p>
       <label>Patient: <input name="title" /></label>
   </p>
   <p>
       <label>Start: <input data-role="datetimepicker" name="start" /></label>
   </p>
</script>
Run Code Online (Sandbox Code Playgroud)

所以现在我想添加一个Kendo UI DropDownList并将其配置为从远程数据源填充.你如何在模板中配置这样的东西?

示例代码(不起作用):

<p>
    <label>Type: </label><input id="appointmentTypeDropDownList" />
</p>
# var dataSource = new kendo.data.DataSource({ transport: { read: { url: "http://demos.kendoui.com/service/products", dataType: "jsonp" } } });
# $("#appointmentTypeDropDownList").kendoDropDownList({ dataSource: dataSource, dataTextField: "ProductName", dataValueField: "ProductID" } ) ;
Run Code Online (Sandbox Code Playgroud)

上面代码给出的错误是: 未捕获错误:模板无效:'

可能这只是一个脚本编码问题; 我对将绑定的DropDownList放在模板中的正确方法更感兴趣.

更新 - 这个jsfiddle URL提供了我正在尝试做的最新简化版本.目标只是以最直接的方式绑定下拉列表.谢谢!

kendo-ui kendo-scheduler

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

角度错误没有可用于依赖类型的模块工厂:ContextElementDependency

我正在尝试运行Angular 5应用程序并在执行之后

npm install
Run Code Online (Sandbox Code Playgroud)

npm start
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ng serve

** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
 20% building modules 88/102 modules 14 active ..._modules\@angular\forms\esm5\forms.jsError: No module factory available for dependency type: ContextElementDependency
    at Compilation.addModuleDependencies (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:215:21)
    at Compilation.processModuleDependencies (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:204:8)
    at _this.buildModule.err (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:359:14)
    at building.forEach.cb (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:149:27)
    at Array.forEach (<anonymous>)
    at callback (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:149:13)
    at module.build (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:176:11)
    at resolveDependencies (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\ContextModule.js:165:4)
    at ContextModule.result.resolveDependencies (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@ngtools\webpack\src\angular_compiler_plugin.js:440:25)
    at ContextModule.build (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\ContextModule.js:105:8)
    at Compilation.buildModule (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:151:10)
    at factoryCallback (C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\Compilation.js:344:12)
    at C:\dev\ssmith\github.com\ebs2\src\FrontEndSrc\node_modules\@angular\cli\node_modules\webpack\lib\ContextModuleFactory.js:95:13
    at …
Run Code Online (Sandbox Code Playgroud)

npm webpack angular

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