我正在使用IIS和ASP.NET CORE部署Web应用程序。我设置了一个“appsetting.json”文件,其中包含一个到sql server的连接字符串。到目前为止,我尝试的任何变化都没有用。奇怪的是,它在我的本地机器上完美运行,但是当我部署它并发送HTTPPost时,日志文件说使用服务器上的数据库连接时出错。
好吧,我尝试了我能想到的所有变化。 Visual Studio生成的当前连接字符串是:
Data Source =(localdb) MSSQLLocalDB; Initial Catalog = Swap; Integrated Security = True; Connect Timeout = 30; Encrypt = False; TrustServerCertificate = FALSE; ApplicatiOnIntent=读写; MultiSubnetFailover =假
我已经尝试将“Integrated Security”更改为False。我试图用用户ID和密码(“sa”用户)替换它。我尝试添加“初始目录”属性并将其设置为我的数据库。
我很确定应用程序的启动很好,因为当我尝试向主页发送GET请求时,一切似乎都很好。当我发送POST请求并要求DBcontext添加和SaveChanges时,它显示以下错误:
失败:Microsoft.EntityFrameworkCore.Database.Connection [20004]使用服务器上的数据库“交换”连接发生错误
'(的LocalDB) MSSQLLocalDB'。
这是我尝试将HTTPPost请求发送到的函数:
byte[] j = new byte[(int)Request.ContentLength];
Request.Body.Read(j, 0, (int)Request.ContentLength);
string str = Encoding.ASCII.GetString(j);
TokenSet tokenSet = new TokenSet {Token = str };
sqlTokensetData.Add(tokenSet);
sqlTokensetData.SaveChanges();
HttpClient notificatiOnSender= new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post,
"https://fcm.googleapis.com/fcm/send");
request.Headers.TryAddWithoutValidation("Authorization", "key="
);
request.Headers.TryAddWithoutValidation("Sender", "id=");
Message pushNotification = new Message(new string[] { str }, "Success!"
);
request.COntent= new
StringContent(JsonConvert.SerializeObject(pushNotification)
,Encoding.UTF8,"application/json");
HttpResponseMessage output = await notificationSender.SendAsync(request);
日志文件错误:https://anotepad.com/notes/9a8jxa
我希望将“str”字符串插入到数据库中。谢谢。
好吧,基本上,感谢上面的评论,我已经成功解决了这个问题。如果遇到同样的错误,您需要做什么:1。如上所述,下载SQL Server Express - https://www.microsoft.com/en-us/sql-server/sql-server-editions-express。然而,在您认为合适的情况下配置SQL Server。 2.配置sa用户,设置密码并启用它。 3.如果SQL身份验证不起作用,则在Microsoft SQL Server Management Studio中 - >右键单击服务器 - >属性 - >服务器身份验证 - >更改为SQL Server和Windows身份验证4.将连接字符串更改为: