小编Enr*_*ico的帖子

Azure Service Bus和Azure功能队列触发器

我有一个问题,创建一个Azure FunctionQueue Trigger在.NET 2.0的核心.

我想要的是

microservice体系结构中,当在队列中创建用于创建用户的新消息时,服务必须接收此消息并基于其中的信息在数据库中创建用户.

问题

在Visual Studio 2017中,我创建了一个新项目Azure Function.

Visual Studio添加新项目

从我选择的新模板Queue Trigger.

Visual Studio新模板

此屏幕不同于有关此主题的Microsoft帖子.无论如何,第一个问题是什么Connection和是什么Path.

我创建了一个Service Bus,我有自己的凭证Azure Portal.我复制了Primary Connection String并且Path是我队列的名字.

如果我运行该项目,我会收到很多错误.我发现这个链接Azure Documentation是一个简单的触发器.在这个例子中,他们使用ServiceBusTrigger而不是QueueTrigger.为了解决问题ServiceBusTrigger,我Microsoft.Azure.WebJobs.ServiceBus从Nuget 补充道.它似乎不起作用.

Azure门户服务总线

为了获得正确的凭证Azure Function,我创建了一个Azure Portal并下载了app content.

Azure门户功能

看起来像

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_EXTENSION_VERSION": "beta",
    "ScmType": "None",
    "WEBSITE_AUTH_ENABLED": …
Run Code Online (Sandbox Code Playgroud)

c# azure azureservicebus .net-core azure-functions

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

Xamarin Forms:Microsoft.Azure.Mobile的本机错误

今天我加入了我的项目

using Microsoft.Azure.Mobile;
using Microsoft.Azure.Mobile.Analytics;
using Microsoft.Azure.Mobile.Crashes;
Run Code Online (Sandbox Code Playgroud)

我应该使用Visual Studio Mobile Center,但之后我收到52次错误

/Users/enricorossini/Projects/myInventories/myInventories/myInventories.iOS/MTOUCH:错误MT5209:本机链接错误:警告:目标文件(/Users/enry/Projects/myInventories/my/my.iOS/obj/iPhone/Debug/ build-ipad6.3-10.1.1/mtouch-cache/MobileCenterAnalytics.a(MSPageLog.o))是为较新的iOS版本(8.0)而不是链接(7.0)(MT5209)(my.iOS)而构建的

我该怎么做才能解决它?先感谢您.

visual-studio xamarin.forms mobile-center visual-studio-app-center

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

具有会话和测试的 .NET Core ASP.NET 控制器

我的网络项目是.NET Core2.x。在登录控制器中,登录后,我将一个令牌保存在 中,Session以便跨页面使用此令牌。

当我想测试所有控制器时,我的问题开始了。如果我从测试中调用控制器,HttpContext.Session则为null.

然后我找到了这个MockSession

public class MockHttpSession : ISession
{
    Dictionary<string, object> sessionStorage = new Dictionary<string, object>();
    public object this[string name]
    {
        get { return sessionStorage[name]; }
        set { sessionStorage[name] = value; }
    }

    string ISession.Id
    {
        get {
            throw new NotImplementedException();
        }
    }
    bool ISession.IsAvailable
    {
        get {
            throw new NotImplementedException();
        }
    }
    IEnumerable<string> ISession.Keys
    {
        get { return sessionStorage.Keys; }
    }

    void ISession.Clear()
    {
        sessionStorage.Clear();
    }

    Task …
Run Code Online (Sandbox Code Playgroud)

mocking asp.net-core-mvc asp.net-core

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

Azure KeyVault:如何创建 clientId 和 clientSecret?

我想将我的应用程序连接到 KeyVault。通常,我可以创建一个新的客户端密钥并在我的代码中使用它。

var _keyVaultClient = new KeyVaultClient(
    async (string authority, string resource, string scope) =>
{
    var authContext = new AuthenticationContext(authority);
    var clientCred = new ClientCredential(clientId, clientSecret);
    var result = await authContext.AcquireTokenAsync(resource, clientCred);
    return result.AccessToken;
});
Run Code Online (Sandbox Code Playgroud)

我可以从 Azure 门户创建一个新的客户端密钥。

在此输入图像描述

现在,我在 KeyVault 中找不到此选项。

在此输入图像描述

Program.cs中我有类似的东西

var keyVaultEndpoint = new Uri(Environment.GetEnvironmentVariable("VaultUri"));
configApp.AddAzureKeyVault(keyVaultEndpoint, new DefaultAzureCredential());
Run Code Online (Sandbox Code Playgroud)

在本地工作正常,但是当我将应用程序部署到 Azure 时,出现此错误:

物理根目录为“C:\home\site\wwwroot”的应用程序“/LM/W3SVC/1699246683/ROOT”已从 Program.Main 退出,退出代码 =“0”。捕获的 stdout 和 stderr 日志的前 30KB 字符:

[10:15:57 FTL] 主机意外终止 Azure.Identity.CredentialUnavailableException:DefaultAzureCredential 无法从包含的凭据中检索令牌。

环境凭据身份验证不可用。环境变量未完全配置。

ManagedIdentityCredential 身份验证不可用,未找到托管身份端点。

SharedTokenCacheCredential 身份验证不可用。在缓存中未找到任何帐户。

在 …

c# azure azure-keyvault asp.net-core

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

EntityFramework Core自动迁移

在我的项目中,我有 2 个数据库:一个是我的自定义数据库,另一个是ApplicationDbContextMicrosoft Identity我的。

在我的Startup.cs我有这样的代码:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env,
        ApplicationDbContext db, MyContext dbPSC)
{
     // ...

    db.Database.EnsureCreated();
    db.Database.Migrate();

    dbPSC.Database.EnsureCreated();
    dbPSC.Database.Migrate();
}
Run Code Online (Sandbox Code Playgroud)

不知道什么时候有迁移的迁移吧?然后,我有两个错误:

  • 除了第一次之外,每次应用程序启动时,迁移都会ApplicationDbContext引发错误
  • 我的上下文的迁移似乎很好

使用的最佳做法是什么?是否需要打电话进行迁移ApplicationDbContext

更新

我已经删除了该Migration文件夹。然后,改变了Startup.cs类似

public void Configure(IApplicationBuilder app, IWebHostEnvironment env,
        ApplicationDbContext db, MyContext dbPSC)
{
     // ...

    db.Database.EnsureCreated();
    dbPSC.Database.EnsureCreated();
}
Run Code Online (Sandbox Code Playgroud)

但是当应用程序启动时,它根本不创建任何表。AuditDbContext是因为我使用Audit.net

public class MyContext : AuditDbContext
{
    public MyContext(DbContextOptions<MyContext> options) : base(options) { }

    public DbSet<Message> Messages { …
Run Code Online (Sandbox Code Playgroud)

entity-framework-core asp.net-core microsoft-identity-web

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

Xamarin形式:使用返回Xamarin.Forms.Color的函数的奇怪行为

我有一个函数返回Color(Xamarin.Forms)的奇怪问题.我的想法是展示一个具有不同背景的盒子取决于AppointmentStatus.我为这样的枚举创建了一个扩展

public static Color ColorForStatus(this AppointmentStatus status)
{
    Color rtn = Color.Transparent;

    switch (status)
    {
        case AppointmentStatus.Active:
            rtn = Color.FromHex("#654BE");
            break;
        case AppointmentStatus.Cancelled:
            rtn = Color.FromHex("#E14063");
            break;
        case AppointmentStatus.Completed:
            rtn = Color.FromHex("#C4E7EE");
            break;
        case AppointmentStatus.Hold:
            rtn = Color.FromHex("#84CEDD");
            break;
        case AppointmentStatus.InProgress:
            rtn = Color.FromHex("#B1D1DE");
            break;
        case AppointmentStatus.Paused:
            rtn = Color.FromHex("#F1E19E");
            break;
        default:
            rtn = Color.Transparent;
            break;
    }

    return rtn;
}
Run Code Online (Sandbox Code Playgroud)

如果我调用此功能rtn有我预期的颜色,但在屏幕上我看不到任何颜色.为了尝试修复它,我创建了一个具有类似代码的函数

public static class ColourHelpers
{
    /// <summary>
    /// Determine the color for an appointment status …
Run Code Online (Sandbox Code Playgroud)

xamarin.forms

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

Azure DevOps dotnet build 无权访问 nuget 包

在 Azure DevOps 中,我有我的公司nuget存储库。我创建了一些新的 nuget 包,并将它们包含在我的项目中。在本地,项目运行良好。

当我dotnet build在 DevOps 上运行时出现错误,因为对 nuget 存储库进行了未经授权的访问。

在此处输入图片说明

[错误]C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5):错误:无法加载源https://vs.pkgs.visualstudio.com/Vs/的服务索引 _packaging/vs.com/nuget/v3/index.json

响应状态代码不表示成功:401(未授权)。

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:无法加载源https://vs.pkgs.visualstudio.com/Vs/_packaging/vs的服务索引 .com/nuget/v3/index.json。[d:\a\1\s\Payments\Payments.csproj]

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:响应状态代码不表示成功:401(未经授权)。[d:\a\1\s\PiP.Payments.Stripe\PiP.Payments.csproj]

构建失败。

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:无法加载源https://vs.pkgs.visualstudio.com/Vs/_packaging/vs的服务索引 .com/nuget/v3/index.json。[d:\a\1\s\PiP.Payments.Stripe\PiP.Payments.csproj]

C:\Program Files\dotnet\sdk\3.1.202\NuGet.targets(124,5): 错误:响应状态代码不表示成功:401(未经授权)。

c# nuget .net-core azure-devops

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