问题描述
我是ASP.Net Core的新手。我有一个ASP.Net Core Web API项目,通过它可以连接到本地MS sql数据库并对该数据库执行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;"));
请帮助我解决此问题。我一直在努力寻找解决方案,但没有成功。预先谢谢你!
解决方法
第一步,当前检查数据库连接工作,并且TrustServerCertificate = 是 下一步,检查主机或服务提供商
上的权限文件夹