小编Ala*_*ark的帖子

适用于Kestrel .NET Core Web API的适当的Kubernetes准备和活动探测器

我们的目标是使用Kubernetes横向扩展.NET Core 2.0 Web API.Web API应用程序将由Kestrel提供.

看起来我们可以通过配置Kestrel的关闭超时来优雅地处理pod的终止,所以现在我们正在研究如何探测应用程序以确定准备和活跃度.

仅使用HTTP请求探测Web API是否足够?如果是这样,创建一个新的健康检查控制器以处理这些探测请求是一个好主意,还是探测在正常使用中消耗的实际端点更有意义?

在区分活跃度和准备度探测时,我们应该考虑什么?

kubernetes kestrel-http-server asp.net-core asp.net-core-webapi

17
推荐指数
2
解决办法
907
查看次数

当有很多调用Trace.WriteLine()时,在Linux容器中运行的ASP.NET Core 2.0应用程序会遇到锁定问题

我们的应用程序是部署在Linux Docker容器中并在Kubernetes中运行的ASP.NET Core 2.0 WebAPI.

在负载测试期间,我们发现CPU使用率出现间歇性峰值,而我们的应用程序永远无法从中恢复.

我们使用perfcollect从容器中收集痕迹,以便我们可以将成功的测试和测试与CPU峰值进行比较.我们发现,失败测试中大约75%的CPU时间花费在JIT_MonRelaibleEnter_Protable锁定操作的接口上.打电话的是System.Diagnostics.TraceSource.dll.

我们的应用程序是从.NET Framework移植而来的,包含很多调用System.Diagnostics.Trace.WriteLine().当我们删除所有这些时,我们的CPU /内存使用量减少了50%以上,我们不再看到CPU峰值了.

我想了解这个问题的原因.

在corefx repo中,我可以看到在TraceInternal.cs中设置了一个默认的跟踪侦听:

public static TraceListenerCollection Listeners
    {
        get
        {
            InitializeSettings();
            if (s_listeners == null)
            {
                lock (critSec)
                {
                    if (s_listeners == null)
                    {
                        // In the absence of config support, the listeners by default add
                        // DefaultTraceListener to the listener collection.
                        s_listeners = new TraceListenerCollection();
                        TraceListener defaultListener = new DefaultTraceListener();
                        defaultListener.IndentLevel = t_indentLevel;
                        defaultListener.IndentSize = s_indentSize;
                        s_listeners.Add(defaultListener);
                    }
                } …
Run Code Online (Sandbox Code Playgroud)

docker .net-core asp.net-core

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

连接到JIRA时出现间歇性102错误(ERR_CONNECTION_REFUSED)

在过去的几个月里,当我们分别尝试通过端口8080和7990连接到托管JIRA和Stash的内部服务器时,我们遇到了间歇性的102错误.

我不熟悉Java堆栈,但我相信在机器上安装JIRA时,它会设置Catalina Tomcat服务器.

我找不到任何有用的日志来表明任何问题.我可以采取哪些步骤来诊断此问题?

networking tomcat jira http-error catalina

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

使用环境变量配置Azure功能的LogLevel

根据Azure文档,Functions V2使用.NET Core日志记录筛选器层次结构进行配置。

在下面的示例中,将ILogger的实例注入到该函数的Run方法中。

[FunctionName("MyFunction")]
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger logger, ExecutionContext executionContext)
{
    logger.LogInformation("I don't want to see this in production!"));
}
Run Code Online (Sandbox Code Playgroud)

检查ILogger对象时,每个LoggerInformation元素的MinLevel为null,这似乎记录了所有级别。

在生产中,我只想以错误级别登录。我希望能够使用环境变量进行配置,但是找不到任何说明如何实现此目的的文档。我尝试添加以下环境变量无效:

"logging__logLevel__Default: "Error" 
Run Code Online (Sandbox Code Playgroud)

azure asp.net-core azure-functions

6
推荐指数
3
解决办法
1246
查看次数

在MigraDoc-WPF中使用section.AddImage()后释放锁定图像文件

我有以下代码生成报告PDF,上传它然后删除生成中使用的临时图像:

// Generate document and then add a section with an image
var document = new Document {Info = {Title = "Results"}};
var section = document.AddSection();
var logo = section.AddImage(logoPath);

// Render the PDF
const PdfFontEmbedding embedding = PdfFontEmbedding.Always;
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(unicode, embedding);
pdfRenderer.Document = document;
pdfRenderer.RenderDocument(); // This is the line which locks the files

// Save the PDF to a memory stream and upload it to azure blob storage
var reportPath = "";
using (var stream …
Run Code Online (Sandbox Code Playgroud)

c# wpf pdfsharp migradoc asp.net-mvc-4

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

电子邮件是否包含可以从PHP读取的外出办公室标志

我正在对内部票务系统进行一些改进。系统从我们的交换服务器中提取电子邮件,并将其转换为系统中的票证。在此票证生成过程中,我们已经从每个电子邮件的标题中获取信息。

我想知道的是,是否有办法确定电子邮件是否是办公室外的答复并已自动发送回去。这可以来自任何系统,而不仅仅是Outlook。这将很有用,因为这些电子邮件可以被过滤掉而不转换为票证,从而减少了系统中的垃圾邮件并节省了代理商的时间。

但是,这确实是必须的,因为我们宁愿手动处理这些电子邮件,也不愿错过非自动化的电子邮件。另一个有用的检测是无效地址,服务器消息等的反弹。

我正在用PHP开发,但是朝着正确方向的任何指针将不胜感激。

php email outlook

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

更改列整理 - 是否安全?

我的票务系统中有一张表,有15,000条记录,每条记录都包含一封电子邮件,该电子邮件已转换为要添加到故障单的邮件.

我们当前的问题是整理 - 当我得到系统时,它使用latin1_swedish_ci.但是,我们在系统中使用了几种欧洲语言,因此我们需要能够正确存储非ASCII字符.

我无法使用latin1_swedish_ci排序规则,但我在系统的测试版本上发现将排序规则切换为utf8_bin可以解决问题.

因此,我需要知道在实时系统上对我的表/列进行此更改是否安全.这会花费很长时间(当你试图让它真的很难工作时,PHPMyAdmin非常可怕)还是会破坏任何现有数据?

mysql php4 collation phpmyadmin

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

从Delphi 7到C++ Dll的引用传递数组

这是通过DLL公开的C++函数:

double my_exposed_cpp_function(int* my_array){
 int i = my_array[2]; /* i should be 3 */
 my_array[2]++;
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是我的Delphi函数的声明

function dll_function(var my_array: array of integer): Real; stdcall; external myDLL name 'my_exposed_cpp_function';
Run Code Online (Sandbox Code Playgroud)

这是我想在Delphi函数中做的事情

procedure talk_to_dll();
var
 return_value: Real;
 my_array: array[0..2] of integer;
 final_value: integer;
begin
 my_array[0] = 1;
 my_array[1] = 2;
 my_array[2] = 3;
 return_value := dll_function(my_array);
 final_value = my_array[2]; /* my_array[2] should now be 4 */
end;
Run Code Online (Sandbox Code Playgroud)

希望这个例子能让我明白我的意图.我可以使用这个设置来处理更简单的数据类型,所以我知道Delphi和dll之间的通信很好.我需要改变什么才能使其正常工作?

c++ delphi dll parameter-passing delphi-7

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

Delphi 7 - 将监视添加到使用'with'命令引用的变量

我正在开发一个使用'with'命令的大型软件项目,我在调试时遇到了困难.

以下面的代码为例:

with record do
begin
 record_property = 'some value'; 
end;
Run Code Online (Sandbox Code Playgroud)

如果我正在调试此代码并且我想看到record_property的值,我必须在record.record_property上添加一个监视,即使我在'with'块中暂停了.是否有Delphi 7的设置或附件,它允许"with"块创建的范围进入观察窗口?

这将使我的生活变得更加容易,因为有许多嵌套'with'块的情况,这使得很难弄清楚如何添加手表.

delphi delphi-7

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

使用Roslyn CSharpCompilation生成.NET Standard 2.0 DLL

我正在开发一个服务,给定一个Swagger定义的URL,使用NSwag生成服务的C#代理.整个代理包含在一个C#文件中.

我想使用Roslyn自动将生成的代码编译成.NET Standard 2.0 DLL.这应该使用CSharpCompilation类在内存中完成.

为了确认这是可能的,我在Visual Studio 2017中创建了一个.NET Standard 2.0类库项目,并为Newtonsoft.Json(10.0.3)和System.ComponentModel.Annotations(4.4.0)添加了NuGet依赖项.我可以看到项目类型还引入了对.NETStandard.Library的SDK依赖.

我知道我不会使用项目文件来生成带有Roslyn的DLL,但是,我正在努力找出生成相同DLL的等效步骤.

.net c# roslyn .net-core .net-standard

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

在Delphi 7中按字母顺序对TListBox项目进行排序

我试图在添加/编辑条目后触发对TListBox控件中的项目进行排序。

我看到有一个我已设置为true 的Sorted属性,但是,每当我对内容进行更改时,它都不会对ListBox进行动态排序。似乎没有任何可用的排序过程或函数,并且调用UpdateRefresh效果不理想。

我已经到了考虑将ListBox的内容拉入TStringList对象,对其进行排序然后将所有内容再次放回ListBox的阶段。不过,这似乎有些疯狂,我肯定会忽略一些更好的方法。

这是更改现有项目的示例:

 myListBox.Items[myIndex] := newString; // Update Text
 myListBox.Items.Objects[myIndex] := TObject(my_object); // Update associated object
Run Code Online (Sandbox Code Playgroud)

我希望控件进行更新以使内容按字母顺序排序,但事实并非如此。

delphi sorting delphi-7 tlistbox

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

索引的默认路由不适用于新控制器

我的应用程序顶部的导航栏有以下代码:

<li>@Html.ActionLink("Users", "Index", "Account")</li>
<li>@Html.ActionLink("Models", "Index", "Models")</li>
Run Code Online (Sandbox Code Playgroud)

在AccountController中,我有以下索引函数:

        [Authorize(Roles = "Admin, CanEditGroup, CanEditUser")]
        public ActionResult Index()
        {
            var users = _db.Users;
            var model = new List<EditUserViewModel>();
            foreach (var user in users)
            {
                var u = new EditUserViewModel(user);
                model.Add(u);
            }
            return View(model);
        }
Run Code Online (Sandbox Code Playgroud)

在ModelsController中,我有以下索引函数:

        public ActionResult Index()
        {
            return View();
        }
Run Code Online (Sandbox Code Playgroud)

当我点击"用户"链接时,我将被带到"/帐户"并正确显示索引.但是,当我点击"模型"链接时,我被带到'/ Models'并收到'HTTP Error 403.14 - Forbidden'错误.当我调试这个时,我可以看到'ModelsController'中的Index函数没有被命中.'/ Models/Index'工作得很好.

应该注意的是,我使用的是AccountController已经存在的模板.我已经添加了ModelsController.

最后,这是我的简单路由文件:

            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
Run Code Online (Sandbox Code Playgroud)

请帮助我理解AccountController和ModelsController之间的区别,这会导致路由行为的差异.

asp.net-mvc routing .net-4.5

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