![](/img/trans.png)
[英]ASP.Net core 2 - powershell remoting works only in IIS Express (Kestrel not working)
[英]ASP.NET Core 2.2 error when setting up DBContext (works in Kestrel, not in IIS Express)
我有一个.Net Core 2.2 Web项目,其中在Startup.cs文件中设置了dbcontext连接:
services.AddDbContext<FirmDirectoryContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultDatabase")));
当我运行Kestrel时,它可以工作,但是如果尝试使用IIS Express运行它,则会得到以下信息:
{System.ArgumentNullException:值不能为null。 参数名称:connectionString
连接字符串显然是在appsettings.json文件中设置的,否则Kestrel也将失败?
我不确定您的appsettings.json看起来如何,但是您应该在json文件中像这样设置一个部分:
"ConnectionStrings": {
"DefaultDatabase": "<Your connection string>"
}
如果您的环境设置为开发,则dotnet从appsettings.development.json获取连接字符串。
确保在那里也设置了连接字符串。
看来问题出在我的Program.cs文件中。 我已经复制了.NET Core 2.1项目中使用的一些代码
WebHost.CreateDefaultBuilder(args)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseWebRoot(Directory.GetCurrentDirectory() + "\\wwwroot") // THIS LINE FIXES STATIC FILES ON PROD
.UseIISIntegration()
.UseStartup<Startup>();
一旦对其进行编辑以删除Directory.GetCurrentDirectory()代码,它就会起作用。
WebHost.CreateDefaultBuilder(args)
.UseIISIntegration()
.UseStartup<Startup>();
现在,我必须在服务器上进行测试以查看其是否仍然有效。 感谢您的答复。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.