小编Rad*_*ský的帖子

在 Docker 容器中登录 ASP.NET Core/.NET Core 控制台应用程序

如何docker logs <container-id>在 docker容器内运行的 .net 核心应用程序中编写日志,以便日志消息交替显示在 Kitematic UI 中?

我几乎尝试了所有方法,但最终总是没有来自 dotnet 应用程序的日志。我在 NODE.js、nginx、rabbitmq 等容器中的所有其他非 dotnet 应用程序都可以毫无问题地写入日志。

这是我已经尝试过的:

  • 控制台应用程序 (.NET Core) 使用 Console.WriteLine
  • 使用 ILogger 接口的 ASP.NET Core 应用程序(使用 VS 模板和 docker 支持后的默认设置)
  • 在控制台/ASP.NET Core 应用程序中使用 log4net(日志记录实际上适用于例如使用 RollingFileAppender)和 ConsoleAppender

我找不到任何遇到相同问题的人(stackoverflow、google、github 问题),所以我想我在这里遗漏了一些重要的东西。

更新1:

这是我目前的设置:

  • 视窗 10 专业版
  • Docker for Windows 17.12.0-ce
  • docker-compose 版本 1.18.0,构建 8dd22a96
  • 运行 Linux 容器

更新 2:

工作 Dockerfile 示例(NodeJS 应用程序)

FROM node:9-slim
WORKDIR /app
EXPOSE 80

ENV NODE_PATH=/node_modules
ENV PATH=$PATH:/node_modules/.bin

COPY ./MyApp ./
RUN npm install …
Run Code Online (Sandbox Code Playgroud)

logging visual-studio docker .net-core asp.net-core

11
推荐指数
2
解决办法
2万
查看次数

HttpRuntime Cache与静态字典/字段

主要有哪些优点缺点使用的httpRuntime缓存不要使用简单的静态字段?

我需要将数据存储在整个ASP.NET应用程序的范围内.

HttpRuntime.Cache["MyData"] = someHashtable;
Run Code Online (Sandbox Code Playgroud)

private static System.Collections.Hashtable _myData;
public static System.Collections.Hashtable MyData
{
    get
    {
        if (_myData == null)
        {
            _myData = new System.Collections.Hashtable();
            // TODO: Load data
        }
        return _myData;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# asp.net caching httpruntime

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

无法从用法中推断出方法的类型参数

namespace TestLibrary
{
    [TestFixture]
    public class Class1
    {
        public delegate T Initializer<T>();

        public static T MyGenericMethod<T>(Initializer<T> initializer) where T : class
        {
            return initializer != null ? initializer() : null;
        }

        [Test]
        public void Test()
        {
            var result = MyGenericMethod(MyInitializer);
            Assert.IsNotNull(result);
        }

        private object MyInitializer()
        {
            return new object();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在Visual Studion 2010中运行时,这是一段正常运行的代码.如果我尝试使用MSBUILD从命令行构建它...

"c:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe" Solution1.sln
Run Code Online (Sandbox Code Playgroud)

...我得到非常熟悉的错误消息:

无法从用法中推断出方法"方法名称"的类型参数.尝试显式指定类型参数.

有任何想法吗?

.net c# generics msbuild unit-testing

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