如何解决ASP.Net Core Web API在IIS Express上有效,但在部署到IIS时不起作用
我是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 = 是 下一步,检查主机或服务提供商
上的权限文件夹版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。