也许 SO 不是这个问题的正确地方。如果有更好的平台,请告诉我,我会在那里发布。
在单个产品/域中,我们有多个 Azure 托管的应用程序。有些是 Azure Functions,有些是 API。有些是网站。有些使用公共数据库。有些使用他们自己的自定义数据库。但所有人都以某种方式共同努力,形成了自己的生态系统。
我们遇到的问题是日志记录。随着时间的推移,这些应用程序中的每一个都使用自己的日志记录系统创建。我们希望将它们全部整合到一个系统中。
我正在查看 Azure 必须为某种解决方案提供的所有服务。我们不想要一个标准的 SQL 数据库。我们想要一个专门用于日志记录的服务,它最好有自己的内置查询系统。这个想法是我们将创建我们自己的内部日志 API,可以从每个应用程序调用它。然后这个 api 将存储日志。
起初,Azure Log Analytics Workspace 似乎是显而易见的解决方案。但随着我对它的了解越来越多,我不太确定。它似乎更适合出去收集有关机器性能的记录,而不是让某些服务(如我们的 API)向其发送日志记录。我是否正确?或不?
Application Insights 在这方面做得很好,但当然,每个应用程序都有自己的 Application Insights 实例。我们希望为所有应用程序的所有日志建立一个统一的存储库
所以我的问题是:是否有专为通用日志记录设计的开箱即用的 Azure 服务?
我希望这是有道理的。
Visual Studio 2017 (v15.9.9)。
我似乎不知道如何创建 .tfignore 文件。如果我手动执行此操作,Windows 会告诉我需要添加文件名。我没有看到任何地方可以通过 IDE 创建一个。
我习惯了 GIT,在这里我可以右键单击待签入的文件(已更改),然后选择“忽略”。但我似乎没有这个选择,尽管我通过谷歌找到的所有结果都告诉我我应该这样做。
我想做的事情应该很简单,但我无法让它发挥作用!
我的appsettings.json
文件:
{
"AppSettings": {
"myKey": "myValue",
}
}
Run Code Online (Sandbox Code Playgroud)
进而:
var config = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();
var myValue = config["myKey"];
Run Code Online (Sandbox Code Playgroud)
myValue
一片空白。
我也尝试过:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
IConfiguration config = builder.Build();
var myValue = config.GetSection("myKey");
Run Code Online (Sandbox Code Playgroud)
但同样,myValue
为空。
我已经在.NET工作了一段时间,但我是WCF的新手.我正在尝试使用JSON创建我的第一个WCF服务.我以为我会真的开始,非常简单,然后从那里开始构建.但我设法搞砸了最简单的服务.这是我到目前为止所得到的.
Web.Config中:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name="MarathonInfo.MarathonInfoService">
<endpoint address="http://localhost:10298/MarathonInfoService.svc" binding="webHttpBinding" contract="MarathonInfo.IMarathonInfo" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors> …
Run Code Online (Sandbox Code Playgroud) 我们有一个现有的 API,一些外部应用程序(Docker 容器等)使用它来回调我们的服务器。它使用 HMAC(共享密钥)系统进行保护。当从一台服务器向另一台服务器进行调用时,这非常有用。
但是,我们即将开始将我们的网站从 .NET Web 表单慢慢转换为 Angular (v6),我们希望 Angular 能够使用相同的 API 和相同的安全性。
我们设想的是一个单一的 Angular 库,称为类似 的东西AngularAPICall
,它在每个会话开始时实例化,它接受公钥和共享秘密作为参数。然后,每次 Angular 需要回调服务器时,它都会调用 内部的方法AngularAPICall
,该方法使用公钥和共享密钥来创建所需的哈希值并构建 API 调用标头。
但是,我们不确定在 Angular 等本机客户端平台上使用共享密钥时如何保证共享密钥的安全。我们在哪里/如何存储共享秘密?把它放在 web.config 中不会有任何好处。除了存储它之外,我们如何将它传递到客户端库AngularAPICall
并保证其安全?我们如何持久化它以便在调用之间保持它?
或者……我们处理这个问题的方式是错误的吗?我们是否应该重新思考如何处理 Angular 中使用的 API 安全性?
我有两张桌子,一张嵌套在另一个旁边。父表具有class="table table-bordered table-hover"
我们都知道和喜爱的所有自动魔法甜蜜 Bootstrap 优点。
但是,在这个父表中,我需要一个嵌套表。默认情况下,此嵌套表继承所有与父表相同的类。在这种情况下,这会导致问题。我需要这个嵌套表没有任何甜蜜的 Bootstrap 优点。它需要只是一个普通的非 Bootstrap 表。
有没有一种快速简便的方法来告诉嵌套表不要继承父表的所有 css 元素?
(下面的代码片段并不是我正在处理的内容的确切表示,但它是我们可以用来找到解决方案的一个很好的 POC。)
谢谢!
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css" integrity="sha384-Smlep5jCw/wG7hdkwQ/Z5nLIefveQRIY9nfy6xoR1uRYBtpZgI6339F5dgvm/e9B" crossorigin="anonymous">
<table class="table table-bordered table-hover">
<tr>
<td>Row 1</td>
</tr>
<tr>
<td>Row 2</td>
</tr>
<tr>
<td>
<table>
<tr>
<td>Nested 1a</td>
<td>Nested 2a</td>
<td>Nested 3a</td>
<tr>
<tr>
<td>Nested 1b</td>
<td>Nested 2b</td>
<td>Nested 3b</td>
<tr>
</table>
</td>
</tr>
<tr>
<td>Row 3</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
没有日期类型。如果我想要一个只有日期而没有时间的对象,比如生日,我会使用什么类型?
我确定已经有人问过并回答过这个问题,但我没有找到这个确切的问题,一般只找到很多关于日期和日期时间的问题。
谢谢!
(编辑:我不是在问如何从 DateTime 中删除日期或时间。我希望可能有一种数据类型只存储日期,而不是一起存储日期和时间。答案似乎是, 没有。)
在本文档(Azure Functions 的计时器触发器)中,他们给出的示例每五分钟执行一次该函数,从以 5 或 0 结尾的分钟开始。这很好,但除非我遗漏了某些内容,否则本文档不会解释语法触发器以及我如何自定义它。
public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, TraceWriter log)
{
....
}
Run Code Online (Sandbox Code Playgroud)
为了在我的本地主机上进行测试,等待时钟时间以 5 或 0 结尾的分钟确实很烦人。我只想函数在运行时立即执行,然后每五分钟执行一次。我将如何相应地修改此语法?
我正在 .Net Core 3.1 中创建一个新应用程序。
我已经创建了数据库,现在正在处理业务逻辑,它位于服务集合中。在开始创建 API 或 UI(即:任何 Web 应用程序类型项目)之前,我希望首先 100% 让所有数据访问和服务按预期工作...包括日志记录。为了确保这一切都能正常工作,我想创建一些集成测试。
我遇到的问题是我真的很苦恼如何让日志记录工作。我能找到的每个教程、文档和所有示例都假设您有一个Program.cs
和Startup.cs
。
注意 1:我希望日志记录像在生产中一样工作,这意味着一直到 SQL。没有嘲笑。没有替代品。无需更换。
注 2:我不太关心测试中的日志记录。我想在服务中进行日志记录。
这是我迄今为止拥有的集成测试 (xUnit) 类的示例。它正在工作,但没有日志记录。
namespace MyApp.Test
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IAccountService, AccountService>();
services.AddTransient<IAppSettings, AppSettings>();
}
}
public class AccountServiceTests
{
private readonly IAccountService _account;
private readonly IAppSettings _settings;
public AccountServiceTests(IAccountService account, IAppSettings settings)
{
_account = account;
_settings = settings;
}
[Fact]
public async Task AccountService_CreateAccount()
{
Account …
Run Code Online (Sandbox Code Playgroud)