我想在安装了mono的Linux上部署ASP.NET Web应用程序.
据我所知,Mono是一个类似于.DNX 4.5.1或.DNX Core 5.0的目标平台.所以我需要以某种方式将它添加到我的项目中的目标平台,以针对它编译和调试项目.
令人惊讶的是,我没有找到任何指示.我正在创建一个新的ASP.NET 5/vNext项目,我看到的只是4.5.1和Core 5.0编译目标.如何将Mono添加到该列表中?
我正在尝试启动 ASP.NET 5 Web 应用程序,以便可以通过公共 Internet 地址访问它,例如“ http://hostname.dom ”。
我不希望通过“ http://www.hostname.dom ”、“ http://test.hostname.dom ”等访问它。我将 DNS 记录配置为通过“*”指向服务器的 IP 地址.hostname.dom”和“hostname.dom”名称。
所以我用参数启动 Kestrel:
server.urls=http://hostname.dom
Run Code Online (Sandbox Code Playgroud)
我希望它忽略任何不是“ http://hostname.dom ”的地址,但是每个“ http://justanything.hostname.dom ”都可以使用应用程序 ”地址甚至只是IP地址。因此,它正在侦听对 80 端口的所有请求,而不是对特定主机名的请求。例如,在配置 IIS 站点绑定时,您可以指定像“hostname.dom”这样的绑定,它会忽略任何其他可能的前缀,直到您明确指定它们。
Kestrel 是否支持 urls/hostnames,或者它只能侦听端口?
假设我要实现不同的DbContext(MySql,MsSql),但使应用程序完全不知道它。
因此,使用“ AddScoped”(或任何其他)方法,我可以注册:
<AppDbContextContract, AppDbContextMySql>
<AppDbContextContract, AppDbContextMsSql>
Run Code Online (Sandbox Code Playgroud)
甚至将它们隐藏在工厂后面。
但是,有了AddDbContext(),我什至看不到一种明显的方式来放置所需的实现,而不是抽象的AppDbContextContract。
除了提供在基本应用程序中添加数据库上下文的简便方法之外,AddDbContext()方法还有什么用?我是否应该首选“通用” DI方法?