asp.net – 使用外部connectionStrings.config文件进行WebPublish Code-Fi
|
我目前有一个利用Entity Framework Code-First迁移和Web Publish的项目,其中connectionStrings存储在web.config文件中. 现在是时候将connectionStrings移到web.config之外了,因此我们将它们放入connectionString.config文件中,并让它们在webpublish上进行慢速转换. connectionStrings.config <connectionStrings>
<!-- Testing Databases -->
<add
connectionString="server=testserver;database=testdatabasename;user id=someid;password=*******"
name="dbname"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
web.config相关部分 <connectionStrings configSource="configconnectionStrings.config"> </connectionStrings> 现在,当我加载Web Publish(Build – > Publish Project)的对话框时,在设置选项卡中我收到错误 No Databases found in the project 这向我表明对话框不够智能,无法查看configSource并从那里加载数据.我可以确认在我的开发人员环境中正确加载了connectionStrings,我还可以确认slowcheetah正在将配置转换为它的生产环境. 有没有办法让Visual Studio Publish看到我的配置配置,并允许代码优先迁移? 解决方法我在使用Visual Studio 2013 Update 4并使用类似的共享方法通过connectionStrings的configSource属性在.net 4.5下的已发布项目的单独项目中首先使用Entity Framework 6代码时遇到了同样的问题.我列出了这些细节,因为它会引起一些完美的风暴.试图摆脱它我遇到了一些不同的错误,不得不按照EF blog they know it’s a mess and are re-factoring their approach的不同方式破解它.这是我能想到的最好的(这里是龙): 发布向导似乎不理解configSource所以我从web.config中的conectionStrings中取出了一个空元素(你也可以完全删除它,但我觉得现有但空元素最好带注释更合适).为了使它在本地工作,我添加了一个连接工厂,使工作在调试模式(本地)工作,并使发布向导找到数据库迁移.我使用了工厂,因为connectionString总是取代工厂,我需要滥用它来使项目在任何转换之前工作.还要确保传递给dbcontext构造函数的字符串(“connectionStringOrDatabaseName”)是连接字符串和数据库名称(使工厂生成的db与连接字符串db匹配). 现在它找到了数据库并且它在本地工作,但它并没有真正使用你的sharedConfig(因此不会总是在发布时工作).为了解决这个问题,我使用了web.config转换为xsd:使用configSource替换/插入空/缺少的connectionStrings元素.如果您现在尝试发布,则会遇到invalid connectionStrings element is produced的问题. 尽管如此接近我无法直接找到/找出问题的解决方案,所以我不得不采用另一种方法:I created a custom transformation aka xsd:导入时,给定一个configSource属性将父元素替换为另一个中的元素文件,我将把实现作为练习留给读者. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 在哪里提出持久性依赖的域事件 – 服务,存储
- 如何在ASP.NET核心rc2中禁用浏览器缓存?
- IIS7返回的日期标头是错误的
- asp.net – 是否需要在web.config中保护连接字符串?
- asp.net-core – 使用[FromBody]时获取原始POST数据
- asp.net – 多重约束违反.关系“…”的角色“…”具有多重性
- asp.net-mvc – Internet Explorer缓存asp.netmvc ajax结果
- asp.net-mvc – 获取ActionName,ControllerName和AreaName,
- asp.net – 使用NInject连接依赖项的选项
- asp.net-mvc – 子文件夹中的控制器
