我有一个正在Windows环境下开发并在ubuntu 16.04上运行的Web应用程序。
我没有问题在我的Windows环境中将信息发布到我的sqlite数据库文件blog.db
(位于项目的/。目录中),但是当我在我的ubuntu服务器上尝试相同的操作时,我得到了以下错误:
Microsoft.AspNetCore.Server.Kestrel[17]
Connection id "0HL8AR4JM7NOJ" bad request data: "Requests with 'Connection: Upgrade' cannot have content in the request body."
Microsoft.AspNetCore.Server.Kestrel.Core.BadHttpRequestException: Requests with 'Connection: Upgrade' cannot have content in the request body.
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame.ThrowRequestRejected(RequestRejectionReason reason)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.MessageBody.For(HttpVersion httpVersion, FrameRequestHeaders headers, Frame context)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.Frame`1.<ProcessRequestsAsync>d__2.MoveNext()
问题是,我不确定导致此错误的原因。我不认为这是我的代码的问题,但它是可能的。
你们认为问题是什么?这可能是由nginx引起的吗?或者这是由asp.net引起的?
这是我的Controller.cs
private ApplicationDbContext ctx = new ApplicationDbContext();
[HttpPost]
public IActionResult Sent(string name, string info, string email)
{
var message = new ContactMessage
{
username = name,
message = info,
email = email,
date = DateTime.Now
};
ctx.messages.Add(message);
ctx.SaveChanges();
return View();
}
ApplicationDb.cs
public class ApplicationDbContext : DbContext
{
public DbSet<ContactMessage> messages { get; set; }
public DbSet<Post> posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder builder)
{
builder.UseSqlite("Filename=./blog.db");
}
}
解决方案:(因为我的帐户不允许回答问题)
这是我的nginx配置。
/./etc/nginx中的是一个名为nginx.conf
我有proxy_set_header Connection "upgrade";
应该是proxy_set_header Connection $http_connection;
这解决了我的问题,我的数据库现在适用于ubuntu方面。
答案 0 :(得分:2)
这是我的nginx配置。
在/./etc/nginx内的文件名为:nginx.conf
我的proxy_set_header连接为“升级”;
应为proxy_set_header Connection $ http_connection;
这解决了我的问题,现在我的数据库可以在ubuntu端工作。