所以我有一个应用程序,它由API和Windows服务(由Topshelf包装)组成,它使用RabbitMQ持续监听事件并按需处理数据.
对于教育和娱乐,我试图将其重写为可在.NET Core和unix上运行的等效设置(例如,在AWS上的docker容器中)
如果我想保持跨平台的话,使用.NET Core实现等效于Windows服务(永远运行的后台进程)的最佳方法是什么?
谁能帮助我让VS2017与.NET Core测试项目一起工作?
我尝试从VS 2017模板为.NET Core创建MSTest和xUnit单元测试项目.它们都不适用于测试资源管理器(未发现),但从dotnet test项目文件夹运行可以正常工作.
重现步骤:
Unit Test Project (.NET Core)或xUnit Test Project (.NET Core)模板Run All 此时,"输出"窗口应该告诉您已发现0测试
.csproj 文件:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp1.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.0.0" />
<PackageReference Include="xunit" Version="2.2.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
如果我尝试从面向.NET Framework的模板(完整版,而不是.NET Core)创建MSTest单元测试项目,那么它可以工作.
有任何想法吗?
我有一个ASP.NET 5 Web API(好吧,现在是MVC)后端,我正在使用我的JS应用程序中的axios库.
我在MVC中的CORS配置如下:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddCors();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseCors(builder => {
builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();
});
}
Run Code Online (Sandbox Code Playgroud)
换句话说,我应该允许每一个请求.但是,虽然这个固定的预检请求仍然被拒绝(我可以看到它在服务器上执行,但是响应中没有标题,因此导致客户端错误).
有没有人有任何想法为什么这不起作用?
这些是MVC api返回的标头:
有关设置的一些上下文:
我们正在从NTLM切换到Kerberos(协商),以在各种.NET工作负载(例如IIS托管的Web API或简单的.NET命令行程序)之间进行服务到服务的身份验证。
对于从客户端到服务器的任何调用,中间都有一个API网关。我们在网关中有一些自定义逻辑,用于执行身份验证和强制执行Kerberos(使用NTLM票证拒绝协商标头)。正常的客户端-服务器流如下所示:
现在,为了不做大的改变,我们能够(在网关中)基于来自(C)的请求的原始目的地(应该是大致的主机名)配置发生Kerberos检查的请求和(S)的端口。
此设置可以正常工作,但偶尔会出现一个难以复制的问题:
klist get HTTP/spn-of-G,即使冒充完全相同的用户,也可以从(C)执行a 并接收正确的Kerberos票证(C)通常以我的问题是:是否有其他可能的方法可以解决这种情况,而无需重新启动服务器?
我已经尝试过但没有成功的事情:
iisreset。但是我已经看到了这个问题,例如(C)是每15分钟运行一次完成的C#命令行程序。ipconfig /flushdnsklist purge使用powershell脚本对所有登录会话执行)我正在开发一个 ES6 AngularJS 项目,我使用 webpack 将所有内容捆绑到dist/app.js.
我正在使用的 CI/CD 堆栈是 SCM - Jenkins - Octopus:
我的代码更新已推送到存储库
Jenkins 克隆存储库,调用npm install并gulp使用它gulp-webpack从一个入口点捆绑和缩小所有内容并将其放入dist/app.js
章鱼项目在多个环境中工作,我必须有一种方法来根据环境替换一些配置变量。为此,Octopus 提供了“替换文件中的变量”部署步骤。
当我不使用模块捆绑器和 ES6 时,我只会有一个配置文件来设置一些我随后使用的角度常数。我会有一个config.js文件和一个config.template.js文件。Octopus 将替换文件中的变量config.template.js,我只需将其设置为替换config.js为config.template.js部署后。
然而现在,我只是使用一个普通的config.js导出我需要使用的变量,然后将其导入到相关的文件中(例如包含角度控制器函数的文件)。
通过这种设置,我无法像以前那样进行替换,因为我的config.js意志只是包含在dist/app.js. 谁能帮我想出一个如何实现这一目标的策略?我想在构建之前进行config.js-交换,然后让 Octopus 替换整个包中的变量,但这似乎效率相当低。config.template.jsapp.js
javascript variable-substitution jenkins octopus-deploy webpack
.net-core ×2
.net ×1
asp.net-core ×1
cors ×1
daemon ×1
javascript ×1
jenkins ×1
kerberos ×1
negotiate ×1
unit-testing ×1
unix ×1
webpack ×1
windows ×1