小编web*_*ake的帖子

C#File.Replace可防止崩溃

File.Replace做原子/事务操作,如果发生崩溃或电源故障,目标文件永远不会丢失,也不会丢失部分文件(即原始文件或新文件)?

如果没有,是否有另一种方法可以防止这种情况?

注意:这将在Windows 7或更高版本的NTFS驱动器上,我理解支持事务.

注意:我问的是保存在一个原子庄园而不关心一个单独的进程也像这个问题那样打开文件.

.net c#

11
推荐指数
1
解决办法
940
查看次数

相当于.NET Core中的HttpResponse.StatusDescription设置状态码描述

如何更改 .NET Core 应用程序的状态描述?我正在寻找相当于 .NET 4.8 HttpResponse.StatusDescription的东西。

代替

HTTP/1.1 400 Bad Request

我想将“错误请求”更改为我的应用程序中的某些内容

HTTP/1.1 400 Custom Error Message

我知道还有其他发送错误文本的方法。但是,我需要支持仅从状态代码文本字段读取错误消息的旧应用程序。

如果相关,它将使用 .NET Core 3.1 在 IIS 上运行。

c# asp.net-core asp.net-core-3.1

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

#if DEBUG vs if(env.IsDevelopment())

当您希望在调试/开发和发布/生产中具有不同的行为时,似乎可以使用预处理器指令(#if DEBUG)和ASP.NET核心环境名称(IHostingEnvironment.EnvironmentName).什么时候使用一个而不是另一个是有任何理由更喜欢一个而不是另一个

#if DEBUG的示例

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    #if DEBUG
        app.UseDeveloperExceptionPage();
        app.UseBrowserLink();
    #else
        app.UseExceptionHandler("/Error");
    #endif
}
Run Code Online (Sandbox Code Playgroud)

env.IsDevelopment()的示例

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
        app.UseBrowserLink();
    }
    else
    {
        app.UseExceptionHandler("/Error");
    }
}
Run Code Online (Sandbox Code Playgroud)

更新:这个问题我在寻找什么时候应该使用ASP.NET核心环境名称(.NET核心的新功能).这与关于#if和条件属性的其他问题不同

c# debug-symbols asp.net-core

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

ASP.NET Core中的MachineKey.Protect()等效项

MachineKey.Protect()MachineKey.Unprotect()ASP.NET Core中的等效项(如果有)是什么

asp.net .net-core asp.net-core

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

没有Identity ASP.NET Core v2的Cookie中间件

我试图在不使用身份的情况下进行身份验证.我发现了一些文章描述了如何在其他版本中执行它,但对于ASP.NET Core 2没有任何内容.

以下是我拼凑在一起的内容.但是当它到达SignInAsync时会抛出异常InvalidOperationException: No authentication handler is configured to handle the scheme: MyCookieMiddlewareInstance

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
        services.AddCookieAuthentication("MyCookieMiddlewareInstance", o =>
        {
            o.LoginPath = new PathString("/Account/Login/");
            o.AccessDeniedPath = new PathString("/Account/Forbidden/");

        });
        services.AddAuthentication();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        { …
Run Code Online (Sandbox Code Playgroud)

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

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

访问 .NET Core 控制台应用程序中的 System.Printing 命名空间

有没有办法从 .net 核心控制台应用程序访问System.Printing命名空间。我看到它可用于 .net 核心 WPF 应用程序。文档中没有任何内容指定它仅适用于 WPF。

我一直在寻找 System.Printing NuGet 包,但没有运气

我在 Windows 10 上使用 C# .NET Core 3.1

c# .net-core

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

ASP.NET MVC 中的 SQL Server 流文件输出和处理连接

我正在尝试将 sql server 中存储的内容作为 varbinary(max) 流式传输到客户端。我能够使其工作,但是连接将保持打开状态,直到垃圾收集。如果我在返回结果之前处置连接、读取器或蒸汽,则会导致对象处置错误。

我希望避免将数据复制到内存中(因为它可能很大),同时在完成后正确处理对象。实现这两个目标的最佳方法是什么?

如果相关的话,我正在使用 .NET Core 2.0。

更新:这不是其他人的重复(How do I dispose my filestream when Implementing a file download in ASP.NET?),因为我不是问如何处置流,而是问如何处置相关的连接对象。我的问题更多是关于确保连接对象被处置的正确方法

下面的代码成功返回结果,但留下未释放的连接:

public async Task<IActionResult> DownloadFile(Guid FileId)
{
    var connection = new SqlConnection(DatabaseService.ConnectionString);

    await connection.OpenAsync();
    var command = connection.CreateCommand();

    command.CommandText = "select FileName, FileContent from Files where FileId=@FileId";
    command.CommandType = System.Data.CommandType.Text;
    command.Parameters.AddWithValue("@FileId", FileId);

    var reader = await command.ExecuteReaderAsync(System.Data.CommandBehavior.SequentialAccess | System.Data.CommandBehavior.SingleRow);

    if (!await reader.ReadAsync())
        return NotFound();
    var attachmentName = Convert.ToString(reader[0]);

    var stream = reader.GetStream(1);

    var response …
Run Code Online (Sandbox Code Playgroud)

.net c# sql-server asp.net-mvc asp.net-core

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