适用于dotnet core 2.1和IIS的Docker映像

时间:2018-09-26 13:20:47

标签: docker .net-core dockerfile iis-express

我对.Net核心应用程序进行了Docker化,并且我的应用程序使用IIS-express进行基本身份验证。 问题是,每当我在容器中运行我的应用程序时,我都无法获取数据,因为基本身份验证在容器内无法正常工作,因为Docker映像没有IIS-express。

当前,我正在使用这张图片:

microsoft / dotnet:2.1.301-sdk

是否有同时包含.dotnet核心和IIS-express的Docker映像? 还有其他想法!

3 个答案:

答案 0 :(得分:0)

您可以尝试使用microsoft/iis码头工人镜像并添加dotnet核心环境,但看起来它需要Windows容器。如果您不习惯构建自定义图像,则可能必须找到一个自定义存储库,或者用另一种解决方案替换IIS-express。

答案 1 :(得分:0)

它可能比您不依赖iis而是用代码进行基本身份验证更简单快捷。编写Authorize属性非常简单明了。

下面是一个示例:https://www.johanbostrom.se/blog/adding-basic-auth-to-your-mvc-application-in-dotnet-core。实际上,他在一页上解决了两次,一次是使用属性,一次是使用中间件。

答案 2 :(得分:0)

如果只需要在Windows上运行,则使用configure Kestrel to use Windows auth

中的此代码段
import pandas as pd
pd.read_gbq(query='''select  1''', project_id=7777777, dialect='legacy')

invalid_grant: Bad Request', '{\n  "error" : "invalid_grant",\n  "error_description" : "Bad Request

(文章所在的地方

client_secrets.json

我已替换为public class Program { public static void Main(string[] args) => BuildWebHost(args).Run(); public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .UseHttpSys(options => { options.Authentication.Schemes = AuthenticationSchemes.Basic; options.Authentication.AllowAnonymous = false; }) .Build(); }