Next.js 有一个称为输出文件跟踪的功能。它允许创建仅包含必需文件的 next.js 应用程序的生产版本。这大大减少了包的大小。它还生成server.js可用于运行下一个应用程序的文件。服务器文件非常简单,除了添加一些配置变量的部分(请参见conf下面示例中的属性):
...
const http = require('http');
...
const nextServer = new NextServer({
hostname: 'localhost',
port: currentPort,
dir: path.join(__dirname),
dev: false,
conf: {"env":{},"webpackDevMiddleware":...,<large array of configuration values>},
});
...
Run Code Online (Sandbox Code Playgroud)
有些值似乎是取自的next.config.js,但我不确定其他值来自哪里。
我想要有一个自定义server.js文件,我可以在其中实现日志记录,该日志记录会将所有请求记录到下一个服务器。当还有其他一些方法来实现日志记录时,我发现就简单地记录所有内容而言,这是最简单的。
另外,这个答案建议使用自定义服务器来实现我的目标。
我的问题是我不确定这些conf是如何生成的,以及我应该在自定义server.js文件中包含哪些内容。我还希望server.js每次更新应用程序中的某些配置时都不需要更新文件,因为这很容易被错过。
该conf属性是如何生成的?我可以自己用其他东西替换它吗?
我正在使用Visual Studio 2017中的Schema Compare功能来比较数据库和数据库项目(.sqlproj)。如果我对项目进行了一些更改,它还会向某些模式文件中添加空白行。经过一番调查,我发现我并不是唯一面临此问题的人。从投票数来看,我猜想MS不会很快解决此问题。也许有人为此找到了任何解决方法?
sql-server database-project visual-studio schema-compare sql-server-data-tools
我正在构建一个 API 并使用 swagger 来测试端点。我有一个 ProductDTO:
public string ProductName { get; set; }
.
.
.
public Price Price { get; set; }
Run Code Online (Sandbox Code Playgroud)
在这个 DTO 中,我想使用在我的代码中使用的 Price 类。价格等级如下所示:
public class Price
{
public Price(decimal amount, string currency)
{
Amount = amount;
Currency = currency;
}
public decimal Amount { get; private set; }
public string Currency { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
但是由于在Price课堂上使用了私有设置器,我无法使用 swagger 设置这些值(它具有readonly这些属性)。我真的很喜欢这种拥有私有 setter 并使用构造函数设置值的方法,顺便说一下,它是公共的。有什么方法可以Price使用 swagger为类设置值,并且仍然在属性上使用私有设置器?
Asp.Net Core 发布了 2.2 版,并附带了 HealthChecks 功能。(阅读更多)。它的功能之一是将运行状况检查结果推送到 Azure Application Insights。但是我还没有找到如何在 Azure 门户中查看这些结果的方法。要发送结果,我使用以下扩展名:
services.AddHealthChecks()
.AddSqlServer("...")
.AddApplicationInsightsPublisher();
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Application Insights 中查看这些健康检查报告?
编辑 1:我从官方github docs 中获取了示例。
编辑 2:如果我转到 Azure 门户查询分析,我会看到以下结果:
查询requests:
查询 customEvents
这里:GET /health是我的 healthCheck 端点。通过查询requests日志,我可以查看运行状况检查是否失败,但我想查看有关每个运行状况检查的更多详细信息,而且我认为我不需要为此进行任何扩展,因此我不明白AddApplicationInsightsPublisher()实际执行的操作。
我正在创建一个 WebApi,我需要为我的端点获取一个键值对GET。我发现了一些在POST方法总线中使用字典的例子,这似乎不起作用GET
到目前为止我尝试过这个:
[HttpGet]
public IActionResult Get([FromQuery] Dictionary<string, string> myVar)
{
}
Run Code Online (Sandbox Code Playgroud)
我正在使用 swagger 来测试 API,如果我通过了,{"key":"value"}我将得到带有一对的字典,值是我传入的整个对象。( {[myVar, {"key":"value"}]})
将多个键值对传递给 WebApi forGET方法的正确方法是什么?
编辑:根本问题是我正在使用 swagger (虚张声势)来测试我的端点。目前这个问题不支持github 上的动态查询参数 Issue。一旦将 OpenApi v3 支持添加到github 上的 swashbucle Issue 中,它就应该支持它。
我有Asp.Net Core WebApi。我正在根据HttpClientFactory模式发出Http请求。这是我的示例代码:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddHttpClient<IMyInterface, MyService>();
...
}
public class MyService: IMyInterface
{
private readonly HttpClient _client;
public MyService(HttpClient client)
{
_client = client;
}
public async Task CallHttpEndpoint()
{
var request = new HttpRequestMessage(HttpMethod.Get, "www.customUrl.com");
var response = await _client.SendAsync(request);
...
}
}
Run Code Online (Sandbox Code Playgroud)
我想通过动态代理实现发送请求。这基本上意味着我可能需要针对每个请求更改代理。到目前为止,我发现了2种方法,对我来说似乎没有一种是好的:
1.有一个像这样的静态代理:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddHttpClient<IMyInterface, MyService>().ConfigurePrimaryHttpMessageHandler(() =>
{
return new HttpClientHandler
{
Proxy = new WebProxy("http://127.0.0.1:8888"),
UseProxy = true
};
});
...
} …Run Code Online (Sandbox Code Playgroud) 我正在使用 Azure 事件网格发送自定义事件。一切正常,但现在我想创建一个健康检查服务,它会探测我的所有服务以查看它们是否正常工作。为此,我使用AspNetCore.Diagnostics.HealthChecks。但它不支持 Azure 事件网格。
有没有办法可以在不发送实际事件的情况下探测事件网格来检查它是否正常工作?
我有一个简单的Asp.Net CoreWebApi,HttpClient用于发送一些custum Web请求。我这样使用HttpClient:
services.AddHttpClient<IMyInterface, MyService>()
...
public class MyService : IMyInterface
{
private readonly HttpClient _client;
public MyService(HttpClient client)
{
_client = client;
}
public async Task SendWebRequest()
{
var url = "https://MyCustomUrl.com/myCustomResource";
var request = new HttpRequestMessage(HttpMethod.Get, url);
var response = await _client.SendAsync(request);
...
}
}
Run Code Online (Sandbox Code Playgroud)
我注意到,当我发送多个请求时,HttpClient将它收到的带有第一次响应的 cookie保存在Set-Cookie标头中。它将那些cookie添加到连续的请求标头中。(我已经用进行了检查fiddler)。流:
//First requst
GET https://MyCustomUrl.com/myCustomResource HTTP/1.1
//First response
HTTP/1.1 200 OK
Set-Cookie: key=value
...
//Second request
GET …Run Code Online (Sandbox Code Playgroud) 我有一个 .Net Core 3 项目,我想集成 Paypal。
在过去的项目中,我使用的是Paypal package,但现在我正在阅读他们的文档 ,他们建议使用他们 API 的第 2 版。(以前我使用带有PaypalSDK 的版本 1)。如果我去 nuget.com 并检查Paypal包,我会看到这个包的版本 2 仍然是rc:
Version Downloads Last updated
2.0.0-rc2 143,570 2018-04-12T18:17:40Z
Run Code Online (Sandbox Code Playgroud)
现在已经快2年了,所以看起来并不乐观。如果我再次检查他们的文档,我发现他们建议使用以下软件包:PayPalCheckoutSdk. 链接到他们的文档。如果我尝试复制粘贴一个示例,它甚至无法编译(主要是由于某些属性已重命名)。这真的没有给使用这个包提供很大的信心。我最后的手段就是直接调用 paypal API,而不使用他们提供的 SDK。
将 paypal 与我在 .Net Core 3.1 上运行的服务器集成的最佳方式是什么?
选项:
paypal 2.0.0-rc2 PayPalCheckoutSdk c# ×4
asp.net-core ×2
.net-core ×1
azure ×1
cookies ×1
next.js ×1
paypal ×1
sql-server ×1
swagger ×1
swagger-ui ×1
swashbuckle ×1