小编Ale*_*ich的帖子

NotNull属性

我正在看asp.net vnext 工程指南,并注意到他们建议使用NotNull属性而不是显式检查null和throw 的输入参数ArgumentNullException.让我感到困惑的是,根据这个指南,它足以声明这个属性,并且检查代码将在编译时生成到方法体中.我试图在我的测试项目中做到这一点,但魔术没有发生,即它抛出异常System.NullReferenceException而不是System.ArgumentNullException.这应该如何工作?他们是否会在编译时使用一些AOP库来注入检查代码?

c# asp.net-core

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

Response.TrySkipIisCustomErrors 等效于 asp.net 核心?

如何防止 IIS 使用 IIS 默认错误页面覆盖自定义错误页面?是否有 Response.TrySkipIisCustomErrors 等效于 asp.net 核心?在 ASP Net MVC 中,我使用下面的代码在没有自定义页面的情况下发送错误,但在 asp net core 中它不起作用。

try
{
    // some code
}
catch (Exception ex)
{
    Response.TrySkipIisCustomErrors = true;
    Response.StatusCode = (int)HttpStatusCode.InternalServerError;
    mensagem = ex.Message;
}
Run Code Online (Sandbox Code Playgroud)

asp.net-core

9
推荐指数
1
解决办法
2155
查看次数

Visual Studio Code:如何查看从基类或接口继承的所有类?

有什么方法可以查看从 Visual Studio Code 中的基类或接口继承的所有类吗?我知道如何找到所有参考资料,但这并不是我要找的。

注意:这个问题与Visual Studio Code 相关,而不是常规的Visual Studio

c# visual-studio-code

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

MVC Core ZipArchive无效

我正在MVC Core下的Web API调用中创建一个zip文件,但Windows无法打开生成的文件,声称它无效.

以下是创建存档的代码:

ZipArchive archive = new ZipArchive( archiveMS, ZipArchiveMode.Create, true );

// loop over a series of Azure blobs which contain text
foreach( BlobPathInfo curBPI in model.Paths )
{
    // AzureBlobFile is a wrapper for CloudBlockBlob
    AzureBlobFile blobFile = blobFolder.File( curBPI.BlobPath.FileName );
    Stream blobStream = blobFile.OpenRead();

    ZipArchiveEntry entry = archive.CreateEntry( zipFolderPath.ToString() );

    using( Stream zipStream = entry.Open() )
    {
        blobStream.CopyTo( zipStream );
    }
}

archive.Dispose();
archiveMS.Seek( 0, SeekOrigin.Begin );

return new FileStreamResult( archiveMS, "application/zip" );
Run Code Online (Sandbox Code Playgroud)

从角度脚本调用此WebAPI方法,并将其转换为链接到元素的客户端blob:

// downloadFiles …
Run Code Online (Sandbox Code Playgroud)

asp.net-web-api asp.net-core-mvc asp.net-core

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

System.InvalidOperationException:在配置上下文时尝试使用该上下文

我已经实现了自定义 ASP.NET Core 中间件,它使用数据库上下文作为依赖项。有时,对于到达 API 的第一个请求,它会引发以下异常:

执行请求时发生未处理的异常。System.InvalidOperationException:在配置上下文时尝试使用该上下文。DbContext 实例不能在 OnConfiguring 内部使用,因为此时它仍在配置中。如果在前一个操作完成之前在此上下文上启动第二个操作,则可能会发生这种情况。不保证任何实例成员都是线程安全的。`

只有当从 SPA 调用 API 时我才能重现它。当我从 Swagger 调用 API 时,一切都工作正常。更改中间件的顺序没有帮助。经过深入研究后,我意识到中间件每个应用程序实例化一次,而数据库上下文具有范围生命周期。所以也许问题在于将我的数据库上下文直接注入到中间件的构造函数中。我通过从构造函数中删除数据库上下文注入并将其直接注入到InvokeAsync方法中来修复我的代码。这有帮助,异常消失了。

虽然我解决了我的问题,但我不太明白它是如何工作的。据我了解,默认情况下,EF.Core 数据库上下文是在作用域生命周期内注册的,就 ASP.NET Core 应用程序而言,这意味着新上下文会为每个新请求实例化,并在完成后进行处置。因为我将数据库上下文注入到中间件的构造函数中,所以它应该在第一个请求完成后立即被处理,并且应该抛出此异常或另一个表示它正在尝试使用已处理上下文的异常。另外,我绝对不清楚为什么只有当 API 从 SPA 调用时才会发生此错误,而它对所有 Swagger 请求都工作良好。

autofac entity-framework-core asp.net-core

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

获取注入的IOptions <AppSettings>

我正在尝试构建我的第一个ASP.NET vNext Web应用程序,我遇到的问题是我无法IOptions<AppSettings>注入我的Startup.Configure()方法.奇怪的是,由VS2015生成的MVC示例站点执行相同的步骤,但相同的注入工作!这两个项目都在Desktop CLR上运行,并使用1.0.0-beta4二进制文件.我用我的项目文件创建了gist.我将不胜感激任何建议或帮助.

asp.net-core

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