小编gro*_*kky的帖子

VS2017 15.3解决方案文件中的新GlobalSection是什么?

升级到Visual Studio 2017 15.3.1和ASP.NET Core 2.0后,我的解决方案文件现在最终具有此功能:

GlobalSection(ExtensibilityGlobals) = postSolution
    SolutionGuid = {...a GUID...}
EndGlobalSection
Run Code Online (Sandbox Code Playgroud)

这是什么,我需要它吗?

.net visual-studio .net-core asp.net-core visual-studio-2017

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

什么是ASP.NET Core中的服务器垃圾收集?

我已经将ASP.NET Core项目升级到VS2017和新的csproj,并且有这个选项:

<PropertyGroup>
    <ServerGarbageCollection>true</ServerGarbageCollection>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

什么是服务器垃圾收集?没有适当的文档,只是一个迁移指南,假设您已经知道它是什么.

(除非有正式的文件,在这种情况下,请告诉我.)


简介:遗憾的是,很多基础技术的文档中没有详细信息.然而,@ PanagiotisKanavos的链接在这里有关于"服务器gc"的重要信息.

.net c# csproj .net-core asp.net-core

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

在生产模式下,删除ASP.NET Core 2.0中的控制台和调试记录器

在ASP.NET Core 2.0中,我们有这个

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .Build();
Run Code Online (Sandbox Code Playgroud)

CreateDefaultBuilder(args)有很多有用的默认值.但它包含这个:

.ConfigureLogging((context, logging) => {
    logging.AddConfiguration(context.Configuration.GetSection("Logging"));
    logging.AddConsole();   // HERE IS THE PROBLEM
    logging.AddDebug();     // HERE IS THE PROBLEM
})
Run Code Online (Sandbox Code Playgroud)

因此,控制台和调试日志记录提供程序始终注册.

我曾经像这样注册他们

if (env.IsDevelopment())
{ 
    // register them here
}
Run Code Online (Sandbox Code Playgroud)

在生产模式下运行时如何删除/取消注册?我并不是说改变日志记录级别,我的意思是我不希望它们在生产模式下完全注册.

c# asp.net-core asp.net-core-2.0

23
推荐指数
2
解决办法
9448
查看次数

我在哪里可以记录ASP.NET Core应用程序的启动/停止/错误事件?

在旧的ASP.NET中,在Global.asax.cs类中,我会在应用程序启动时记录,停止并抛出未处理的异常:

  • Application_Start()
  • Application_End()
  • Application_Error()

我如何在ASP.NET Core中执行相同的操作?它有一个Startup类,但它用于配置.

我在哪里挂钩应用程序的开始/停止/错误事件?

c# asp.net asp.net-core

20
推荐指数
3
解决办法
8500
查看次数

在ASP.NET Core中未经授权时重定向到登录

在之前的ASP.NET MVC中,如果用户未经过身份验证,则可以选择重定向到登录操作.

我需要与ASP.NET Core相同的东西,所以我:

  1. 从Visual Studio模板创建了一个ASP.NET Core项目
  2. 添加[Authorize]到一些任意行动
  3. 在我的浏览器中打开相应的视图

我不希望重定向,因为我没有配置它.但是,它会自动重定向到登录操作!

这个选项在哪里/如何设置?

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

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

添加验证到MediatR行为管道?

我正在使用内置容器ASP.NET Core和支持"行为"管道的 MediatR 3 :

public class MyRequest : IRequest<string>
{
    // ...
}

public class MyRequestHandler : IRequestHandler<MyRequest, string>
{
    public string Handle(MyRequest message)
    {
        return "Hello!";
    }
}

public class MyPipeline<TRequest, TResponse> : IPipelineBehavior<TRequest, TResponse>
{
    public async Task<TResponse> Handle(TRequest request, RequestHandlerDelegate<TResponse> next)
    {
        var response = await next();
        return response;
    }
}

// in `Startup.ConfigureServices()`:
services.AddTransient(typeof(IPipelineBehavior<MyRequest,str??ing>), typeof(MyPipeline<MyRequest,string>))
Run Code Online (Sandbox Code Playgroud)

我需要在管道中使用FluentValidation验证器.在MediatR 2中,创建了一个验证管道:

public class ValidationPipeline<TRequest, TResponse>
    : IRequestHandler<TRequest, TResponse>
    where TRequest : IRequest<TResponse>
{

    public …
Run Code Online (Sandbox Code Playgroud)

c# cqrs fluentvalidation mediatr asp.net-core

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

软件包"Microsoft.EntityFrameworkCore.Design"的用途

所有教程都同意project.json应包括:

"Microsoft.EntityFrameworkCore.Design": 
{ 
    "type":"build", 
    "version":"1.0.0-preview2-final" 
}
Run Code Online (Sandbox Code Playgroud)

我从来没有把它包括在内,从来没有遇到过问题.

我只包括

"Microsoft.EntityFrameworkCore"
"Microsoft.EntityFrameworkCore.Sqlite"   (or Sqlserver)
"Microsoft.EntityFrameworkCore.Tools"
Run Code Online (Sandbox Code Playgroud)

这个包有什么作用?为什么我可以毫无问题地排除它?


更新:查看已接受答案中的注释,以确定在哪种方案中导入哪个包.

c# entity-framework-core .net-core asp.net-core

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

ASP.NET Core的ActionFilterAttribute中的异步OnActionExecuting

ASP.NET Core ActionFilterAttribute有这些:

public virtual void OnActionExecuting(ActionExecutingContext context);
public virtual void OnActionExecuted(ActionExecutedContext context);
public virtual Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next);
Run Code Online (Sandbox Code Playgroud)

我需要一个OnActionExecuting不存在的异步版本.

但是我有一种感觉,我可以使用OnActionExecutionAsync,因为它也有一个参数ActionExecutingContext.

我是否正确,尽管名称,他们在过程中的同一点触发?

另外,我需要对next论证做些什么?一旦我完成了我的东西,我只需要打电话await next()吗?

是吗?我不确定,因为我找不到这方面的文档.

c# action-filter asp.net-core

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

我可以在Visual Studio 2017中删除ServiceHub.*吗?

在VS2015中有各种各样的东西在后台运行,如"VsHub"等.它连接到MS服务器,可能泄露的东西.所以常见的方法是删除这些文件.

在VS2017中,有更多奇怪的东西在后台运行.但是我已经读过它执行更多进程外的东西,所以删除它可能是不可行的.

我跑了:

  • ServiceHub.Host.CLR.x86.exe
  • ServiceHub.IdentityHost.exe
  • ServiceHub.SettingsHost.exe
  • ServiceHub.VsDetouredHost.exe

...我看到其他东西弹出我的任务管理器.

我并不关心资源/内存的使用情况,正如其他人所抱怨的那样.在我们的案例中,这是一个隐私/安全问题 - 我们不会从我们的IDE连接到任何在线服务,我们非常认真地对待隐私.我们的代码是我们的产品和生计,所以让工具与其他服务器进行通信,谁知道是什么原因,是彻头彻尾的愚蠢.我们不想用VS任何外部服务通信,永远.

你们有没有像以前一样删除这些文件?它会导致问题吗?VS中的任何东西都停止工作?

visual-studio visual-studio-2017

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

ASP.NET Core的内置日志记录是否使NLog/Serilog/etc过时?

我们使用NLog或Serilog进行记录.我们正忙着将一个系统从ASP.NET移植到ASP.NET Core,后者内置了日志记录.

理想情况下,我们想放弃NLog,因为似乎不再需要它.

但是,内置日志记录是否等同于NLog?它缺少任何主要功能吗?继续使用NLog(或类似Serilog之类的东西)有什么意义吗?

c# nlog serilog asp.net-core-mvc asp.net-core

12
推荐指数
2
解决办法
2885
查看次数