标签: .net-core

如何直接从代码发送电子邮件(无需服务器)

每次我用谷歌搜索或在这里搜索“如何发送电子邮件”时,我都会得到如下结果:使用 smtp 客户端,连接到 smtp 服务器,通过 smtp 服务器发送邮件

我正在寻找服务器如何将电子邮件发送到其他服务器的代码(或想法)。所以上面链接中的方法对我来说不起作用。

有什么提示 smtp 服务器库会做什么吗?

c# email smtp .net-core .net-core-2.0

0
推荐指数
1
解决办法
5799
查看次数

从 ASP.NET Core 2.0 控制台应用程序监控 Azure 服务总线队列深度

我试图从 ASP.NET Core 2.0 控制台应用程序监视总队列深度和 DeadLetterMessages 队列深度。我看到过有关使用 NamespaceManager 类的参考,如下所示:

var ns = NamespaceManager.CreateFromConnectionString(sbConnectionString);
var queue = ns.GetQueue(queueName);
var count = queue.MessageCount;
var deadletterMessagesCount = queue.MessageCountDetails.DeadletterMessageCount;
Run Code Online (Sandbox Code Playgroud)

(摘自如何获取 Azure 服务总线队列中的死信消息计数?

但NamespaceManager位于Microsoft.ServiceBus中,与ASP.NET Core不兼容。

关于如何获取消息计数有什么建议吗?

c# azureservicebus .net-core

0
推荐指数
1
解决办法
1206
查看次数

Linux 中的.NET Core 不读取环境变量

我试图从Linux中的环境变量中获取connectionString,但问题是它返回null。

当我输入printenv connectionStringtermial 时,它返回变量,但在我编写的应用程序中,System.Environment.GetEnvironmentVariable("connectionString")它返回 null。

有谁知道为什么会发生这种情况?

ps 我正在 Docker 中运行应用程序。

linux environment-variables asp.net-web-api docker .net-core

0
推荐指数
1
解决办法
1314
查看次数

从批处理脚本运行.Net Core应用程序并重定向异常

NET Core Console App`,并将异常重定向到文件。我还为此脚本提供参数:

到目前为止我的脚本:

rem **calling C# solution from batch*******
@echo received from python param1:%1 , param2:%2 ,param3:%3
start "Dotnet Test" D:\adi\NET\Bench\Bench\bin\Debug\netcoreapp2.1\Bench.dll  dotnet %1 %2 %3 2>output.txt
pause
Run Code Online (Sandbox Code Playgroud)

.NET Core 控制台应用程序

class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(args[0]);
            if (!File.Exists(args[0])) {
                File.Create(args[0]);
            }


            if(double.TryParse(args[1],out double dbl)) {
                Console.WriteLine($"arg[1]={dbl.ToString()}");
            }
            if (int.TryParse(args[2], out int inte)) {
                Console.WriteLine($"arg[2]={inte.ToString()}");
            }

            Console.ReadLine();
            Console.WriteLine("Hello World!");
        }
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我尝试了2>重定向异常,但它创建了一个0kb文件。

PS另外,我不确定我是否正确运行。我.Net Core Application使用过:
来源: https: //ss64.com/nt/start.html
START …

c# batch-file io-redirection .net-core

0
推荐指数
1
解决办法
7406
查看次数

如果数组元素不存在则返回 null

如果数组元素不存在,是否有一种简单的方法来获取值“null”?

例如,下面的代码sArray有 3 个元素,前 3 个调用起作用SomeMethod(打印 true),但是第四个调用SomeMethod(sArray[3]);给了我一个IndexOutOfRangeException. 有没有办法让第四次调用SomeMethodprint 为 false?

    static void Main(string[] args)
    {
        int[] sArray = new int[]{1,2,3};
        SomeMethod(sArray[0]);
        SomeMethod(sArray[1]);
        SomeMethod(sArray[2]);
        SomeMethod(sArray[3]);
    }
    static void SomeMethod(int? s) => Console.WriteLine(s.HasValue);
Run Code Online (Sandbox Code Playgroud)

^更喜欢单行表达

c# arrays nullable .net-core

0
推荐指数
2
解决办法
3238
查看次数

如何在 csproj 中处理包引用的不同方法

到目前为止,我一直使用属性来控制PackageReference(第一个示例)的资产依赖性。最近,在使用 NuGet 包管理器(在 VS 中)之后,我最终得到了完全不同的 XML。

两者都控制相同的东西,任何人都可以帮助我理解差异和需要有两种方法来控制类似的东西吗?

.NET Core 的 csproj 格式的新增内容 > PackageReference

<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0" PrivateAssets="..." IncludeAssets="..." ExcludeAssets="..." />
Run Code Online (Sandbox Code Playgroud)

项目文件中的包引用 (PackageReference) > 控制依赖项资产

<PackageReference Include="Contoso.Utility.UsefulStuff" Version="3.6.0">
    <IncludeAssets>...</IncludeAssets>
    <ExcludeAssets>...</ExcludeAssets>
    <PrivateAssets>...</PrivateAssets>
</PackageReference>
Run Code Online (Sandbox Code Playgroud)

c# csproj .net-core

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

JwtBearerHandler 具有用于发现端点的授权标头

我使用 ASP.NET Core 2.1 和 JwtBearer 方案进行身份验证,如下所示:

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
        .AddJwtBearer(o =>
        {
            // my options here
        });
}
Run Code Online (Sandbox Code Playgroud)

非常标准,但是我遇到的问题是我的令牌权限发现端点需要授权才能访问。我需要做的是将基本身份验证标头注入到 JWT 中间件对我的权限端点执行的请求中。我正在查看配置选项,但没有看到任何允许我执行此操作的内容。我还在查看源代码,看看是否可以看到 http 请求是在哪里发出的,但它通过抽象和扩展方法非常混乱,我还没有找到它。

有人能告诉我是否可以在某个地方设置它,或者我是否必须创建自己的授权处理程序并手动将它们绑定在一起?任何建议表示赞赏。

c# jwt .net-core asp.net-core

0
推荐指数
1
解决办法
5374
查看次数

了解 ASP.NET Core 配置中的冒号?

JSON 文件和 ASP.NET Core 中的配置之间的关系令人沮丧。我设定了一个这样的秘密:

dotnet user-secrets set "Pwd" "123"
Run Code Online (Sandbox Code Playgroud)

似乎没有办法通过IConfiguration.GetSection方法检索它,只能IConfiguration.GetValue使用,我需要使用IConfiguration.GetSectionPOCO 对象绑定该值:

public class AppSecrets
{
    public int Pwd { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我添加了另一个秘密:"parent:pwd" "456" 查看自动生成的 JSON 文件,它看起来像一个带有两个密钥的常规 JSON:

{
  "Pwd": "123",
  "parent:pwd": "456"
}
Run Code Online (Sandbox Code Playgroud)

那么是什么让冒号对于 .NET Core 中的配置有特殊意义呢?他们在文档中 提到:

在前面的示例中,冒号表示 Movies 是具有 ServiceApiKey 属性的对象文字。

parent但在我的示例中,尽管未按名称映射到 AppSecrets 类,但仍检索到了该值。

还有一点让我感到沮丧的是,值传递给项目属性中的应用程序参数的方式,如下所示:

--user:data:year 1991
Run Code Online (Sandbox Code Playgroud)

我们可以传递更多层次节点吗?

很抱歉我的沮丧让你感到沮丧。我刚刚发现 .NET 核心!

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

0
推荐指数
1
解决办法
2509
查看次数

了解 Orleansgrain 的单线程性质

我有以下来自奥尔良的客户和谷物的代码片段。(虽然在 Orleans 中推荐的开发方式是等待任务,但以下代码在某些时候并不等待,纯粹是出于实验目的)

// client code
while(true)
{
    Console.WriteLine("Client giving another request");   
    double temperature = random.NextDouble() * 40;   
    var grain = client.GetGrain<ITemperatureSensorGrain>(500);
    Task t = sensor.SubmitTemperatureAsync((float)temperature);
    Console.WriteLine("Client Task Status - "+t.Status);
    await Task.Delay(5000);
}

// ITemperatureSensorGrain code
public async Task SubmitTemperatureAsync(float temperature)
{
   long grainId = this.GetPrimaryKeyLong();
   Console.WriteLine($"{grainId} outer received temperature: {temperature}");

   Task x = SubmitTemp(temperature); // SubmitTemp() is another function in the same grain
   x.Ignore();
   Console.WriteLine($"{grainId} outer received temperature: {temperature} exiting");
}

public async Task SubmitTemp(float temp)
{ …
Run Code Online (Sandbox Code Playgroud)

c# actor async-await orleans .net-core

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

在Start.cs中添加UseHsts()有什么意义

根据文档,在配置中添加UseHsts()会激活 STS 相关标头的中间件。

我一直不太明白它的意义。这是否意味着只是简单地向应用程序执行的每个请求添加一个标头?如果我不使用该标头会出现什么问题?

另外,我注意到,当我尝试查找 Core 2.2(上面的链接)时,我被重定向到 Core 2.1,并注明UseHsts()在以前的版本中不存在。这是否意味着它已经过时或者正在使用隐藏魔力的默认值?

c# .net-core asp.net-core asp.net-core-2.2

0
推荐指数
1
解决办法
4020
查看次数