我有一个问题,创建一个Azure Function与Queue Trigger在.NET 2.0的核心.
在microservice体系结构中,当在队列中创建用于创建用户的新消息时,服务必须接收此消息并基于其中的信息在数据库中创建用户.
在Visual Studio 2017中,我创建了一个新项目Azure Function.
从我选择的新模板Queue Trigger.
此屏幕不同于有关此主题的Microsoft帖子.无论如何,第一个问题是什么Connection和是什么Path.
我创建了一个Service Bus,我有自己的凭证Azure Portal.我复制了Primary Connection String并且Path是我队列的名字.
如果我运行该项目,我会收到很多错误.我发现这个链接Azure Documentation是一个简单的触发器.在这个例子中,他们使用ServiceBusTrigger而不是QueueTrigger.为了解决问题ServiceBusTrigger,我Microsoft.Azure.WebJobs.ServiceBus从Nuget 补充道.它似乎不起作用.
为了获得正确的凭证Azure Function,我创建了一个Azure Portal并下载了app content.
看起来像
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_EXTENSION_VERSION": "beta",
"ScmType": "None",
"WEBSITE_AUTH_ENABLED": …Run Code Online (Sandbox Code Playgroud) 今天我加入了我的项目
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
我的网络项目是.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) 我想将我的应用程序连接到 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 身份验证不可用。在缓存中未找到任何帐户。
在 …
在我的项目中,我有 2 个数据库:一个是我的自定义数据库,另一个是ApplicationDbContext给Microsoft 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) 我有一个函数返回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) 在 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(未经授权)。