我曾经使用Visual Studio 2017调试和发布我的Azure功能项目.
但突然间一切都停止了.
当我尝试调试项目时,我收到错误"无法直接启动具有类库输出类型的项目.".当我尝试发布项目时,发布到Azure的选项消失了,我只提供发布到文件夹.在尝试创建配置文件时,我也只能选择"文件夹配置文件"类型.
我在.csproj文件中的"Project Sdk"属性错误但我使用新创建的Azure函数项目进行了双重检查后,在Web项目中看到了类似的行为,它是相同的.当我创建一个新的功能项目时,我可以像以前一样发布到Azure.
我正在使用以下包:
以及.NET Framework 4.7.1.
此外,我正在从包含Business Logic的解决方案中引用其他一些项目.
我最终创建了一个新的函数项目,复制了那里的所有内容,现在它按预期再次运行.
有没有人知道如何发生这种情况以及如何在不创建任何东西的情况下解决这个问题?
是否可以使用ASP.NET Core 2.1并仍然可以在完整的.NET Framework 4.7.1上运行?
我目前在.NET 4.7.1上使用ASP.NET Core 2.0,我还在4.7.1上使用Azure Functions v1,并在Functions和Web项目之间共享类库.
鉴于Azure Functions v2的当前状态,升级到Azure Functions v2以在.NET Core上全押似乎有点冒险,所以我现在更喜欢保留在.NET Framework上.
.net .net-core asp.net-core azure-functions asp.net-core-2.1
我刚刚为 GitHub 存储库设置了 CI/CD。
唯一仍然困扰我的是,CD 构建也会自动触发拉取请求,但我不知道在哪里可以配置这些检查。
我想在这里摆脱持续交付构建。
但这对我来说也没有明显的影响。
continuous-integration continuous-deployment azure-pipelines github-actions
Application Insights 和 AppCenter Diagnostics 都允许通过以下链接监控 Cordova 应用程序:
https://github.com/Microsoft/cordova-plugin-ms-appinsights
https://learn.microsoft.com/de-de/appcenter/sdk/getting-started/cordova
鉴于 GitHub Repo 有点过时,我认为 AppCenter 现在是监控应用程序的建议方法。但是,在后端使用 Azure 服务时,AppCenter 不提供端到端监控功能。
那么,在决定我们的 Cordova 应用程序使用哪个监控系统时,我们应该基于以下问题来做出决定吗?
在后端使用 Azure 服务和 AppInsights?-> 使用 Cordova 前端的 Application Insights。
有独立应用程序或没有 Azure 后端 -> 使用 AppCenter 诊断。
还有其他想法需要考虑吗?
AppCenter Diagnostics 是否提供了我无法从 AppInsights 获得的任何其他好处?
PS:我知道可以将 AppCenter 诊断数据发送到 AppInsights,但这只是数据导出,缺乏端到端功能。
当使用 Azure Cosmos DB 并查询一个分区时,我只需在 FeedOptions 中指定分区键。但是当我必须查询 n 个分区时,我有(据我所知)2 个选项:
当我必须对整个结果集(跨所有分区)应用排序标准和分页时,我认为第一种方法将达到其极限。
使用 .NET SQL API 在 Cosmos DB 中跨多个分区进行查询的推荐方法是什么?
我们目前正在 Azure Function App 上运行负载测试,但吞吐量未达到我们的预期。
函数应用程序中有多种函数,但流量最多的函数是具有事件中心触发器的函数和具有使用来自启用会话的队列的消息的服务总线触发器的函数。
当系统处于负载状态时,会话启用队列中的消息将在队列中等待最多 10 分钟,直到由消费函数处理。
我知道 host.json 中有一些设置可以调整此行为,但它与我们的预期仍然相去甚远。
这是我们的host.json
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"sessionHandlerOptions": {
"autoComplete": true,
"messageWaitTimeout": "00:00:30",
"maxAutoRenewDuration": "00:55:00",
"maxConcurrentSessions": 200
},
"batchOptions": {
"maxMessageCount": 1000,
"operationTimeout": "00:01:00",
"autoComplete": true
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我希望 Function App 能够同时处理最多 200 个会话,但事实上,尽管 Function Runtime 提供了大量实例,但大多数实例似乎都闲置在那里。所以对我来说,似乎还有另一个设置限制了功能应用程序的吞吐量。
我知道如果我们将函数拆分为单独的函数应用程序,将会提高性能,但由于两个函数的负载非常相似,我的计划是将此步骤推迟到稍后阶段,并且仍然通过单个函数应用程序获得可接受的吞吐量。
我们在 .NET Core 3.1 上使用 Azure Functions 3
实体框架迁移提供了一种通过在实体类型上使用 .HasData() 来创建数据和创建表的方法。这将转换为迁移,并调用 MigrationBuilder.InsertData 以在迁移运行时插入数据。当表中的数据仅由迁移提供时,它可以正常工作。但是,当表中已存在种子数据时,迁移会失败并出现重复键错误,因为它尝试插入的键已经存在。
我知道我可以编写一个数据库初始化方法,仅使用实体框架并在迁移之外提供数据。
我还知道我可以运行本机 SQL 语句,包括检查数据是否存在,并仅在这种情况下将其插入作为迁移的一部分。
但令我有点惊讶的是,这个(恕我直言,不是那么奇特)功能并不存在。
或者是否有一些我可能遗漏的东西,并且有一种方法可以配置实体以仅在表中没有数据时提供种子数据?(这就是这个问题的目的)
更新:我们正在使用实体框架 3.1.22
我有一个包含各种动态列的结果集,并且希望将这些动态列投影到一个新的动态列,其中这些列作为属性包含。
例子:
我的结果集由 2 个动态列组成
"MainSoftware": {
"Version": "2.10",
"BuildConfig": 3,
"SettingsVersion": 1
},
"SecSoftware": {
"ArticleNumber": "123",
"Version": "1.0"
}
Run Code Online (Sandbox Code Playgroud)
我想创建以下列作为输出:
"Software": {
"MainSoftware": {
"Version": "2.10",
"BuildConfig": 3,
"SettingsVersion": 1
},
"SecSoftware": {
"ArticleNumber": "123",
"Version": "1.0"
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用 make_bag 但这只能用作聚合函数,并且在我的情况下我有一个平坦的结果集,其中我只需要根据已有的列构建一个计算动态列。
我还尝试使用这样的动态关键字创建列
| extend Software=dynamic({"MainSoftware": MainSoftware, "SecSoftware":SecSoftware})
Run Code Online (Sandbox Code Playgroud)
但这在语法上是不正确的,因为看起来我只能在表达式中使用常量值。
.net ×2
azure ×2
.net-core ×1
asp.net-core ×1
c# ×1
cordova ×1
entity-framework-migrations ×1
kql ×1
paging ×1
partitioning ×1
seeding ×1