我是ASP.Net核心的新手。我有一个项目,通过它您可以连接到本地MS ASP.Net数据库,并执行数据库的CRUD操作。当在IIS Express上运行时,Web API工作得很好--它启动Chrome浏览器,从本地SQL数据库检索记录,并在Chrome浏览器上显示值。但问题是,Web API在部署到IIS时(即发布到文件夹并在IIS上运行时)不起作用。
我猜问题出在连接到MS SQL数据库上。我怀疑连接到数据库在IIS Express上工作正常,但由于某些原因在部署到IIS时连接失败。但我不确定。以下是连接字符串:
// Connection String=> "Data Source=.\\SQLEXPRESS01;Initial Catalog=mynotedb;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddMvc(option => option.EnableEndpointRouting = false)
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0)
.AddNewtonsoftJson(opt => opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore);
services.AddDbContext<mynotedbContext>(options => options.UseSqlServer("Data Source=.\\SQLEXPRESS01;Initial Catalog=mynotedb;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"));
}我在Azure帐户上复制了一个相同的SQL数据库,并且web API对于Azure SQL数据库工作得很好。它既可以在IIS Express上运行,也可以在连接到Azure数据库时部署到IIS上运行。对于Azure SQL数据库,连接字符串如下所示:
services.AddDbContext<mynotedbContext>(options => options.UseSqlServer("Server=tcp:mynote1.database.windows.net,1433;Initial Catalog=mynotedb;Persist Security Info=False;User ID=mylogin;Password=mypassword;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"));请帮我解决这个问题。我一整天都在努力寻找解决方案,但没有成功。提前谢谢你!
发布于 2020-11-08 21:05:34
第一步检查数据库连接当前是否正常工作,TrustServerCertificate=True下一步检查主机或服务提供商上的权限文件夹
https://stackoverflow.com/questions/64737834
复制相似问题