【发布时间】:2018-05-22 14:59:55
【问题描述】:
发布我的 ASP.Net 网站(不是 Web 应用程序)时,发布者不包括 web.config 旁边的 Web.ConnectionStrings.config 文件。这是必需的,因为我的网络配置如下所示:
<connectionStrings configSource="Web.ConnectionStrings.config"/>
如何获得 File System Publish 以包含 Visual Studio 似乎忽略的文件。请注意,这是在 Visual Studio 中使用 [File] > [New Website] 创建的网站,而不是 [File] > [New Project] ASP.Net 网站,因此Content=Include 将无法工作。
重现步骤:
- 在 Visual Studio 中:文件 > 新建 > 网站..
- 创建 Web.ConnectionStrings.config xml 文档(参见下面的 ConnectionStrings.config 代码)。
- 在 Web 配置中,将 Web.ConnectionStrings.config 文件链接到 Web.Config 文件(参见下面的 Web.config 代码)
- 将网站发布到文件系统上的文件夹中,Web.ConnectionStrings.config 不会与其余文件一起移动。
Web.config:
<configuration>
<connectionStrings configSource="Web.ConnectionStrings.config"/>
..
Web.ConnectionStrings.config:
<?xml version="1.0" encoding="utf-8" ?>
<connectionStrings>
<add name="connString" connectionString="yourConnectionstringhere"/>
</connectionStrings>
【问题讨论】:
-
您是否查看了 web.config 内部以确认 VStudio 不只是将您的连接设置拉入 web.config?如果是这样,那仍然可以吗?还是您真的需要在单独的配置文件中使用连接字符串?
-
@tgolisch - 不,它出错了,运行时查找文件但找不到它。 VS 不会以这种方式转换 Web 配置,除非您已对其进行设置:即:web.release.config 和 web.debug.config。实际上,我不确定网站项目是否可以转换,我从未尝试过。我确实需要另一个文件中的连接字符串,它们从一个网络更改为另一个网络,并且它们包含无法签入源代码控制的敏感信息。
-
如果您手动将
Web.ConnectionStrings.config文件复制到正确的文件夹,应用程序是否按预期工作?我只是好奇。 -
是的,这就是我现在正在做的保持它的工作,我只是希望它与发布功能一起工作。
-
将文件的构建操作设置为
Content。发布后,它将与所有其他内容文件一起包含。如果您单击 web.config 文件,您还会注意到它的构建操作作为内容。
标签: asp.net visual-studio-2013 web-site-project