小编reg*_*ahn的帖子

您在*nix服务器上使用哪个Web服务器进行ASP.NET Core生产?

随着ASP.NET Core现已发布,我想知道Linux和Mac环境的最佳托管选项是什么.是否有正在开发的生产级Web服务器?

我唯一知道的是带有框架的Kestrel.从文档中可以看出,与IIS相比,Kestrel缺少一些功能

在此输入图像描述

Stackoverflow答案表明.NET Core应用程序可以与任何HTTP服务器一起使用.这是否意味着它可以与Apache合作?如果是这样,它会丢失任何功能吗?我的印象是它只适用于基于OWIN的服务器.我错过了什么吗?

c# asp.net .net-core kestrel-http-server asp.net-core

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

无法从Microsoft.Extensions.Logging解析ILogger

我已经Main像这样配置了控制台应用程序

var services = new ServiceCollection()
                .AddLogging(logging => logging.AddConsole())
                .BuildServiceProvider();
Run Code Online (Sandbox Code Playgroud)

然后我尝试在另一个类中使用它

    private readonly ILogger _logger;

    public MyClass(ILogger logger)
    {
        _logger = logger;
    }

    public void MyFunc()
    {
        _logger.Log(LogLevel.Error, "My Message");
    }
Run Code Online (Sandbox Code Playgroud)

System.InvalidOperationException:'无法解析类型为'Microsoft.Extensions.Logging.ILogger的服务'

我在这里尝试了解决方案但对我而言不起作用。

根据以下Yaakov的评论和Github的评论进行编辑,我能够通过此操作正确解决它

    public MyClass(ILogger<MyClass> logger)
    {
        _logger = logger;
    }
Run Code Online (Sandbox Code Playgroud)

我本来希望在初始时使用它,BuildServiceProvider但看起来每次要使用记录器(或创建自己的ILogger)时都必须重复此操作。

.net c# dependency-injection .net-core ilogger

14
推荐指数
8
解决办法
9122
查看次数

如何在Azure Devops(VSTS)中导入版本定义?

我正在尝试将发布定义从一个Azure Devops(VSTS)项目复制到另一个项目。在源项目中,我能够将发布定义导出为json文件。

出口发布定义

但是我找不到将其导入到目标项目中的方法。我只获得创建新定义的选项。

创建发布定义

tfs continuous-integration azure azure-devops azure-pipelines-release-pipeline

9
推荐指数
4
解决办法
7302
查看次数

从IIS提供ember应用程序导致UnrecognizedURLError

我正在尝试从IIS提供一个ember应用程序.

我创建了一个新应用程序ember new my-app然后运行ember build --environment production.这会dist按预期生成目录中的文件.

在IIS方面,我在服务器上添加了一个新网站,并dist从最后一步映射了该文件夹.

现在,当我导航到localhost/index.html我得到一个空白页面.

我检查了页面的来源,并按预期正确地提供了js文件.这意味着它是未正确检索的模板.在chrome检查器控制台中有一个例外Uncaught: UnrecognizedURLError: /index.html.烬检查员说'未检测到Ember应用程序!'.

我已经尝试过这里提到的解决方案,但没有一个对我有用.

有没有其他人遇到过这个问题/知道如何解决这个问题?

javascript iis ember.js ember-cli

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

有一个CSS唯一的解决方案,使div在垂直网格中的高度相等吗?

我有一个.parentdiv,其中有一个未知数量的.childdiv.我需要将子div放在一个垂直网格中,所有这些都必须是相等的高度.不幸的是,我不能使用javascript.

我曾尝试不同的组合display: inline-blockfloat: left,但我不能让孩子到相同的高度.

我可以使用相同的高度,display: table-cell但后来我遇到另一个问题,如果总宽度超过容器宽度,孩子们不会分成多行.

有没有办法用纯css做到这一点?我只需要支持IE10 +如果有帮助(flexbox?)

html css css3 css-float flexbox

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

在Azure Devops(VSTS)中删除git fork关系

我通过分支另一个项目创建了一个Azure Devops(VSTS)项目。现在,每当我们克隆新项目时,您都会在控制台输出中获得对原始项目的引用

remote: This repository is a fork. Learn more at https://aka.ms/whatisafork.
remote: To add its upstream as a remote, run:
remote: git remote add upstream <link to original repo>
Run Code Online (Sandbox Code Playgroud)

有没有办法打破这种联系,所以新项目永远不会引用旧项目?

git git-fork azure-devops

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

Azure KeyVault 配置提供程序在更改时重新加载值

我正在使用 Azure Key Vault 配置提供程序在应用程序启动时读取一些机密。然而,秘密全天都在轮换,我希望能够在轮换发生时重新加载新值。

我说的类似于reloadOnChangeapi

.ConfigureAppConfiguration((context, config) =>
{
    config.AddJsonFile("appsettings.json", reloadOnChange: true);
})
Run Code Online (Sandbox Code Playgroud)

这可能吗?

这是一个 webapi 项目,因此在实践中,如果更好/更可行,我可以通过手动重新加载每个 HttpRequest 的值来逃避。

.net c# azure azure-keyvault asp.net-core

6
推荐指数
3
解决办法
2694
查看次数

在 netlify 上禁用持续部署

我有一个项目,我将 Travis CI 用于 CI。我还在 netlify 上设置了一个网站来部署上述项目。我的 Travis CI 中涉及的步骤基本上是运行测试,然后调用 netlify 构建挂钩来触发构建并在 netlify 上部署。

但是,我遇到的问题是,每次更新 master 分支时,netlify 都会进行构建和部署。所以,我想要实现的是这个

  • 主分支更新
  • travis 构建触发
  • travis 完成后,它调用 netlify 构建钩子,启动 netlify 部署

netlify 似乎有一个选项可以添加skip-ci提交消息,但我希望有一个更好的自动化解决方案。

git netlify netlify-cli

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

服务器未返回状态码为400(.net)的JSON

我有一个奇怪的问题,返回400状态代码与json错误.

在我的控制器中,我有类似的东西:

if(!ModelState.IsValid)
{
    string[] errors = ModelState.Values
                            .SelectMany(x => x.Errors)
                            .Select(x => x.ErrorMessage).ToArray<string>();

    Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest;
    return Json(new { success = false, errors = errors }, JsonRequestBehavior.DenyGet);
}
Run Code Online (Sandbox Code Playgroud)

这在我的开发机器上工作正常.我可以在ajax错误方法中得到错误.但是当我部署到服务器时,服务器不再返回JSON.我总是得到responseText而不是reponseJSON.如果我删除Response.StatusCode它工作正常.

这让我相信当我设置Response对象的StatusCode属性时函数'返回'.这有发生在其他人身上吗?谁知道解决方案?

.net c# asp.net-mvc json

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

浏览器未发送启用了CORS的跨域跨域Cookie

我有一个.net核心webapi项目设置为接受跨源请求,如下所示

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors();
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseHsts();
    }

    app.UseCors(opts => opts
        .WithOrigins("https://fiddle.jshell.net")
        .AllowCredentials()
        .AllowAnyMethod()
        .AllowAnyHeader());

    app.UseHttpsRedirection();
    app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)

它具有一个带有GET方法的值控制器,如下所示

[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
    // GET api/values
    [HttpGet]
    public ActionResult<IEnumerable<string>> Get()
    {
        return Ok("cookies: " + string.Join(", ", HttpContext.Request.Cookies.Select(x => x.Key)));
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我试图像这样从浏览器发送获取请求

public void ConfigureServices(IServiceCollection services)
{
    services.AddCors();
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if …
Run Code Online (Sandbox Code Playgroud)

.net javascript c# cors asp.net-core

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