Sql server 在iis中部署我的webapi时出现问题

Sql server 在iis中部署我的webapi时出现问题,sql-server,iis,asp.net-core,asp.net-core-webapi,Sql Server,Iis,Asp.net Core,Asp.net Core Webapi,我在.NETCore2.1中有一个webapi。我使用Visual Studio 2017附带的Microsoft SQL Management Studio创建了一个数据库,webapi使用该数据库来处理其数据。当我在VisualStudio上运行它(webapi)时,它工作得很好,我可以通过POSTMAN进行调用,并且得到了很好的响应,但是当我在本地IIS上部署webapi时,问题就出现了。我得到这个错误页面: 启动应用程序时出错。 Win32异常:未知错误(0x89c50118) 未知位置

我在.NETCore2.1中有一个webapi。我使用Visual Studio 2017附带的Microsoft SQL Management Studio创建了一个数据库,webapi使用该数据库来处理其数据。当我在VisualStudio上运行它(webapi)时,它工作得很好,我可以通过POSTMAN进行调用,并且得到了很好的响应,但是当我在本地IIS上部署webapi时,问题就出现了。我得到这个错误页面:

启动应用程序时出错。 Win32异常:未知错误(0x89c50118) 未知位置 SqlException:建立到SQL Server的连接时发生与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。(提供程序:SQL网络接口,错误:50-发生本地数据库运行时错误。无法创建自动实例。有关错误详细信息,请参阅Windows应用程序事件日志。)。 ) System.Data.SqlClient.SqlInternalConnectionDS..ctor(DbConnectionPoolIdentity标识、SqlConnectionString连接选项、SqlCredential凭据、对象提供程序信息、字符串新密码、SecureString newSecurePassword、bool redirectedUserInstance、SqlConnectionString userConnectionOptions、SessionData reconnectSessionData、bool applyTransientFaultHandling) Win32异常:未知错误(0x89c50118)

我在appsetting.json中有相同的connectionString,因为当我在visual studio中运行webapi时,数据库是相同的,所以我不知道我做错了什么


是否需要对IIS或数据库进行任何特定配置?请提供任何帮助?

当您在Visual Studio上运行webapi时,Visual Studio使用您的本地帐户启动IISExpress,此帐户将连接数据库(查看连接字符串:数据源=。\SQLEXPRESS;初始目录=数据库;集成安全=True)。该帐户默认具有访问数据库的权限

现在,如果您想在IIS上运行webapi,有两种方法:

  • 添加一个可以访问数据库并更改连接字符串的帐户

  • 从SQL Management Studio添加IIS应用程序池标识帐户,然后更改权限


  • 我对MS LocalDB也有同样的问题。这个错误确实是由于sql server权限造成的。但是,在我的例子中,我尝试授予权限,甚至在IIS站点管理器的“编辑站点->连接为”中添加了我的用户,但它对LocalDB不起作用

    我的解决方案:因为我们需要用SQL server托管我们的网站,所以我将数据库上载到SQL server上,并更改了appsettings.json中的连接字符串,如下所示:

    “IdentityDbContextConnection”: 服务器=TestServer001\sqlexpress;数据库=WEBPROJECTDB;集成 安全性=SSPI;”

    和Web.Config


    您可能想查看您可能没有更新生产连接字符串。默认情况下,在Visual Studio中,连接字符串将使用LocalDb,它仅存在于Visual Studio中。当您被读取以进入使用状态时,您将需要一个真实的数据库实例,并且您需要更新连接字符串以连接到该instead@ChrisPratt不知道。我以为
    LocalDB
    有点像“SQL Server Express”。你的评论才是真正的答案!