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 = 下一步,检查主机或服务提供商

上的权限文件夹