Rem*_*ima 7 c# asp.net iis asp.net-web-api asp.net-core
我现在完全失去了......
我有一个.NET Core Web应用程序,并在本地运行一切正常.有许多WebAPI端点,再次全部正常工作GET并正确返回JSON.
当我发布到IIS时,其中一个,只有一个端点停止工作并抛出(failed) net:ERR_CONNECTION_RESET(在Chrome中 - 其他浏览器抛出自己的错误).
奇怪的是,所有其他Web API调用都在同一个环境中并使用相同的上下文和EF数据服务调用同一个数据库.
我无法弄清楚的是,如何从Kestrel获取详细的日志到其他日志服务,Windows事件查看器,文本文件,电子邮件或其他任何东西!我没有使用太多的日志记录中间件,因为我们接近生产时打算将其连接起来.
在使用.NET核心Kestrel Web服务器的Windows 2012 R2上的IIS 8中尝试解决此问题的最佳方法是什么?
bir*_*win 12
我遇到了类似的问题.我正在使用Entity Framework Core 1.1,它不允许延迟加载.我的错误是由多对多关系中的对象图循环引起的.
由于EFCore 1.1不支持多对多开箱即用,我的模型有循环引用.我的JSON Serializer在尝试序列化从我的控制器类返回的数据时陷入无限循环.
如果您遇到此问题但其他解决方案都不起作用,我建议您更改Startup.cs文件ConfigureServices()方法.该行services.AddMvc();应更改为:
services.AddMvc()
.AddJsonOptions(options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
Run Code Online (Sandbox Code Playgroud)
只需编辑 web.config 并将其设置stdoutLogEnabled="true"为 true,并设置日志文件写入的路径即可。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!--
Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
-->
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但您至少需要启用控制台记录器,因为它基本上将控制台输出哑化到文件中。
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
...
}
Run Code Online (Sandbox Code Playgroud)
“Logging”部分在appsettings.json中配置,例如
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9971 次 |
| 最近记录: |