小编Tho*_*mas的帖子

使用Simple Injector和IHttpControllerActivator解决ASP.NET Web API中的依赖项

我目前正在使用Simple Injector来解析我的Asp.Net Web Api项目中的依赖项.

从文档中您可以像这样配置它:

protected void Application_Start() {
    // Create the container as usual.
    var container = new Container();
    container.Options.DefaultScopedLifestyle = new WebApiRequestLifestyle();

    // Register your types, for instance using the scoped lifestyle:
    container.Register<IUserRepository, SqlUserRepository>(Lifestyle.Scoped);

    // This is an extension method from the integration package.
    container.RegisterWebApiControllers(GlobalConfiguration.Configuration);

    container.Verify();

    GlobalConfiguration.Configuration.DependencyResolver =
        new SimpleInjectorWebApiDependencyResolver(container);

    // Here your usual Web API configuration stuff.
}
Run Code Online (Sandbox Code Playgroud)

这里的要点是注册Web Api控制器并设置自定义依赖项解析器.

但是,我刚刚阅读了Mark Seemann关于如何在Asp.Net Web Api中配置依赖注入的这些文章:

从这些文章中,我了解到有一个比IDependencyResolver解决Web Api依赖关系更好的选择.另一个选择是创建一个实现, …

c# dependency-injection simple-injector asp.net-web-api

8
推荐指数
1
解决办法
3453
查看次数

用于逻辑应用程序的 ARM 模板 Office 365 连接

我有一个逻辑应用程序,我试图通过 ARM 模板实现自动化。

逻辑应用需要连接到 Office 365。下面是从 Azure 门户的自动化窗格生成的连接模板。

当我运行脚本时,它失败了 - Azure 订阅和 Office 365 订阅之间存在身份验证问题。

链接授权失败

客户端有权在范围内执行操作“Microsoft.Web/locations/managedApis/join/action”……但是当前租户“curr-tenant-guid”无权访问链接订阅“linked-sub-guid” ...

我将无法创建此信任来自动进行配置,但我想将连接创建为占位符,以便可以部署逻辑应用程序,并且我可以返回门户以授权连接。这可能吗?还有其他选择吗?

 {
      "comments": "Office 365 user for file monitoring",
      "type": "Microsoft.Web/connections",
      "name": "MyOffice365User",
      "apiVersion": "2016-06-01",
      "location": "northeurope",
      "scale": null,
      "properties": {
        "displayName": "readuser@example.com",
        "customParameterValues": {},
        "api": {
          "id": "[concat('/subscriptions/a6720ff8-f7cb-4bc8-a542-e7868767686/providers/Microsoft.Web/locations/northeurope/managedApis/', 'MyOffice365User')]"
        }
      },
      "dependsOn": []
    }
Run Code Online (Sandbox Code Playgroud)

azure office365 azure-resource-manager azure-logic-apps

8
推荐指数
1
解决办法
3526
查看次数

使用连接运行时 URL 创建 Azure 连接 API

我有一个逻辑应用程序(标准逻辑应用程序),可以调用cosmos DB。我需要将“连接运行时Url”存储在逻辑应用程序的配置下。

当我从逻辑应用设计器创建连接时,该连接具有此属性。但是,当我使用 ARM 模板部署相同的连接时,该连接不具有此属性。

有人知道如何获得或生成该属性吗?如果可能的话,稍后如何在 ARM 模板中调用它

谢谢

azure azure-resource-manager azure-bicep azure-logic-app-standard

8
推荐指数
1
解决办法
3746
查看次数

从代码更改Azure网站应用程序设置

是否可以从应用程序本身更改网站的应用程序设置?

这不是日常操作,而是自助服务重新配置选项.非开发人员可以更改特定设置,这应该会导致重新启动,就像我可以在网站配置页面上手动执行(应用程序设置部分)

appsettings azure azure-web-sites

7
推荐指数
3
解决办法
3805
查看次数

在Azure函数中使用BrokeredMessage和ServiceBus队列触发器

我创建了一个Azure功能,只要将新邮件添加到Azure ServiceBus队列,就会触发该功能.使用此代码可以正常工作:

#r "Newtonsoft.Json"
#load "..\shared\person.csx"

using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;

public static void Run(string message, TraceWriter log)
{
    var person = JsonConvert.DeserializeObject<Person>(message, 
            new JsonSerializerSettings() {ContractResolver = new CamelCasePropertyNamesContractResolver()});
    log.Verbose($"From DeserializeObject: {person.FirstName} {person.LastName}");
}
Run Code Online (Sandbox Code Playgroud)

我已经看到我也可以将消息绑定到这样的POCO:

public static void Run(Person message, TraceWriter log)
{
    log.Verbose($"From DeserializeObject: {message.FirstName} {message.LastName}");
}
Run Code Online (Sandbox Code Playgroud)

现在我想将消息绑定到a,BrokeredMessage因为我需要访问消息的属性.

c# azure azureservicebus azure-servicebus-queues azure-functions

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

Azure Web作业 - 同一Web作业中的多个功能和/或同一Web应用程序中的多个Web作业对性能的影响?

有三种方法可以通过Web作业部署新功能:

  1. 创建一个新的Web应用程序,并使用其中的功能部署Web作业.
  2. 将新功能添加到现有Web作业(现在您在一个Web作业中有多个功能).
  3. 将新的Web作业添加到Web应用程序(现在您在同一Web应用程序中有多个Web作业).

同一个Web应用程序上的所有Web作业和Web作业功能都托管在同一个VM上,因此所有3个的材料影响可能相同.但我想知道有什么区别.

有什么指导可以决定如何在我的云解决方案中添加新的Web作业功能?

  1. 带有web作业的新Web应用程序
  2. 或具有其他Web作业的现有Web应用程序中的新Web作业
  3. 或具有其他功能的现有Web作业中的新功能.

我对这三个选项的工作原理,指导,最佳实践和性能影响感兴趣.

azure azure-webjobs azure-web-app-service

6
推荐指数
2
解决办法
2508
查看次数

我应该选择 Azure 应用程序网关还是负载均衡器或前门或流量管理器?

我有一个使用 Angular 8 和 Asp.net Core Web API 开发的 SaaS Web 应用程序。我已将 web api 部署到 azure web 应用程序,并将 angular 前端 web 应用程序部署到另一个 azure web 应用程序。

用户来自中国和澳大利亚等国家。我想要区域负载平衡,就像中国用户在 china azure 区域使用 web 应用程序,澳大利亚用户使用澳大利亚 azure 区域 web 应用程序一样,以便它具有最佳性能。Azure SQL DB 将位于一处(在澳大利亚)。

此外,我想防止对 Web 前端应用程序和 Web api 的攻击,例如 d-dos、Web 抓取和 SQL 注入。对于网页抓取,我想从一个 ip 添加访问速率限制。

你能告诉我应该使用什么服务吗?我在博客上看到了关于 azure 应用程序网关、azure 负载均衡器、azure 前门和 azure 流量管理器的内容。这对我来说有点混乱。我需要一个基于我这个真实世界场景的最佳实践。我应该使用其中一项服务还是应该使用多项服务?

azure-web-app-service azure-application-gateway azure-load-balancer azure-front-door

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

从二头肌循环中调用的模块获取输出

如何从循环中调用的模块中检索输出变量?我喜欢在下一步中将子网添加到 vnet。

主二头肌

module vnet01 'vNet.bicep' = [ for vnet in vnets :  { 
        name: vnet.name
        scope:  virtualNetworkRg
        params: { 
          vnetName: vnet.name
          vnetAddressPrefix: vnet.vnetAddressPrefix
          location: location
        }
      }]
Run Code Online (Sandbox Code Playgroud)

vNet.二头肌

param ...

resource vnet 'Microsoft.Network/virtualNetworks@2021-08-01' = {
  name: vnetName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        vnetAddressPrefix
      ]
    }
  }
}

//Output
output id string = vnet.id
Run Code Online (Sandbox Code Playgroud)

azure azure-resource-manager azure-bicep

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

拦截 Azure 函数主机关闭:刷新 Application Insights TelemetryClient

我正在使用 Azure Function:主要是我尝试将现有的 webjob 迁移到 Azure Functions,现在是时候将 Application Insights 集成到我的一个函数中了。

所以基本上我只需要一个实例,TelemetryClient但这假设我能够在应用程序停止时刷新内存缓冲区。

我使用了 TimerTrigger 但它只是为了测试目的。

我已经引用了Microsoft.ApplicationInsights nuget 包(来自这篇 SO 帖子),我的run.csx文件如下所示:

using System;
using Microsoft.ApplicationInsights;
using Microsoft.Azure.WebJobs;

public static void Run(TimerInfo myTimer, TraceWriter log)
{
    MyTimerJob.TelemetryClient.TrackEvent("AzureFunctionTriggered");
    log.Verbose($"C# Timer trigger function executed at: {DateTime.Now}");
}    

public static class MyTimerJob
{
    public static readonly TelemetryClient TelemetryClient;

    static MyTimerJob(){
        TelemetryClient = new TelemetryClient()
            { InstrumentationKey = "MyInstrumentationKey" };

        // When it shutdowns, we flush the telemty client.
        new …
Run Code Online (Sandbox Code Playgroud)

c# azure-webjobs azure-webjobssdk azure-application-insights azure-functions

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

访问策略不可用

我正在尝试在 Azure Key Vault 中输入访问策略,但收到消息

“访问策略不可用。此密钥保管库的访问配置设置为基于角色的访问控制。要添加或管理访问策略,请转到访问控制 (IAM) 页面。在 azure 中,如何输入访问策略”

我已经添加了角色分配,例如“Key Vault Secrets User”“应用程序合规性自动化管理员”,但没有工作。
我如何访问访问策略

azure azure-keyvault

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