首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在IISWindows10上托管.net核心应用程序时,如何设置connectionString?

在IISWindows10上托管.net核心应用程序时,如何设置connectionString?
EN

Stack Overflow用户
提问于 2019-05-23 00:26:14
回答 2查看 1.7K关注 0票数 1

我跟随这个video on YouTube学习了如何在IISWindows10上托管Asp.net核心应用程序,运行良好。现在,我尝试在此基础上构建,方法是向本地计算机上的sql server实例添加一个connectionString

当使用visual studio运行应用程序时,它工作得很好。但是,当我将其发布到一个文件夹,然后使用IIS运行它时,它抛出了一个错误。

这是我的连接:

代码语言:javascript
复制
"ConnectionStrings": {
   "MembersDatabase": "Data Source=.;Initial Catalog=MembersDb;Integrated Security=True"
 }

这就是我访问它的方式:

代码语言:javascript
复制
services.AddDbContext<MembersContext>
                (options => options.UseSqlServer(Configuration.GetConnectionString("MembersDatabase"))
            );

有没有一种特殊的connectionstring?设置方法这是我第一次这样做。

编辑

这不是生产设置。我将在这台笔记本电脑上克隆真正的应用程序。在我成功完成设置之后,这台笔记本电脑将用于演示该应用程序。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-24 03:38:08

为了解决这个问题,

  1. I为sql server启用了mix身份验证。
  2. Create a user
  3. 为用户(读/写)提供适当的凭据

连接字符串现在如下所示。

代码语言:javascript
复制
"ConnectionStrings": {
  "MembersDatabase": "Data Source=.;Initial Catalog=MembersDb;User Id=test_user;Password=P@ssword123;"
}
票数 0
EN

Stack Overflow用户

发布于 2019-05-23 01:42:24

这很难说清楚,特别是因为你没有发布你得到的实际错误。但是,我最好的猜测是您没有为您的部署环境定制连接字符串。

你目前使用的方式依赖于LocalDb,它只能在Visual Studio的集成开发环境中工作/存在。在部署到IIS时,您将需要一个真实的数据库实例和真实的数据库凭据。

设置数据库服务器远远超出了本文合理介绍的范围,因此,如果您需要帮助,则需要自己进行一些研究。一旦您有了实际的实例和数据库,就可以为您的部署环境定制连接字符串了。

现在,你有多种方法可以到达这里。通常,您希望提供一段配置来覆盖在开发环境/默认情况下设置的内容。这可以是一个特定于环境的JSON文件,如appsettings.Production.json,一个环境变量(您可以在目标服务器上手动设置,也可以通过CI/CD管道设置),甚至可以是一个外部源,如Azure Key Vault。我要说的是,由于连接字符串通常包含应该保密的信息(密码),您应该避免使用JSON和其他基于文件的配置选项,因为这些选项没有加密,通常提交给您的源代码控制。环境变量,Azure密钥库等应该是你在这里的goto解决方案。

无论如何,配置都是基于覆盖的,所以你只需要模仿appsettings.json中的结构就可以了。对于不允许像JSON这样的分层结构的配置源,可以使用冒号(:)来分隔树中的项:ConnectionStrings:MembersDatabase作为配置键。例如,作为环境变量,这将是变量名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56261268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档