【问题标题】:How do I setup Connection Strings for a WebJob project?如何为 WebJob 项目设置连接字符串?
【发布时间】:2015-02-08 07:02:17
【问题描述】:

我正在尝试设置网站和网络作业,但每次尝试独立于网站发布网络作业时都会出错(即从上下文菜单中选择 Publish as Azure WebJob

C:\程序文件 (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5): 错误:'MyWebJob.Models.MyDataEntities-Web.config 连接 String' 参数不能为 null 或为空。
C:\程序文件 (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5): 错误:'MyWebJob.Models.MoreDataEntities-Web.config 连接 String' 参数不能为 null 或为空。

部署 WebJob 有两种选择

当我将我的 webjob 链接到网站项目时,它会与网站一起部署而不会出错。但是,当我尝试独立部署它时,我在控制台和错误列表中收到上述错误,但仍然部署了 webjob。

如何独立部署我的 webjob 并摆脱这种持续存在的“错误”?

【问题讨论】:

  • 您是否尝试过删除发布配置文件并重新发布?
  • 我也有同样的问题,删除重新发布也不会改变
  • @l19 很多时候,因为只有删除发布配置文件并清理后错误才会消失。
  • 更多答案可以在这里找到:stackoverflow.com/questions/11580680/…

标签: visual-studio-2013 azure-web-app-service azure-webjobs


【解决方案1】:

我发现为

提供了一个价值
 <Destination Path="" /> 

在您的发布配置文件 pubxml 文件中解决了该问题。这通常可以在 \Properties\PublishProfiles 中找到。你可能有类似的东西:

<PublishDatabaseSettings>
  <Objects xmlns="">
    <ObjectGroup Name="Context" Order="1" Enabled="False">
      <Destination Path="" />
      <Object Type="DbCodeFirst">
        <Source Path="DBMigration" DbContext="Context, DAO" MigrationConfiguration="Context.Migrations.Configuration, DAO" Origin="Convention" />
      </Object>
    </ObjectGroup>
  </Objects>
</PublishDatabaseSettings>

将其更改为以下为我修复了它:

<PublishDatabaseSettings>
  <Objects xmlns="">
    <ObjectGroup Name="Context" Order="1" Enabled="False">
      <Destination Path="{deployment connection string}" />
      <Object Type="DbCodeFirst">
        <Source Path="DBMigration" DbContext="Context, DAO" MigrationConfiguration="Context.Migrations.Configuration, DAO" Origin="Convention" />
      </Object>
    </ObjectGroup>
  </Objects>
</PublishDatabaseSettings>

希望对您有所帮助。

【讨论】:

  • 这有时对我有用。我有一个包含多个配置文件的项目。它对一个有效,但对另一个无效。
  • 好的,如果您在更改 pubxml 文件后重新启动 Visual Studio,它似乎可以工作。
  • 我可以确认这对我也有效,但我们知道是什么导致了问题吗?
  • 我应该在 {deployment connection string} 中写什么。目前我的 Visual Studio 实例在尝试部署网络作业时崩溃...
  • @skorzinetzki 我真的把信 s 放在那里,它开始工作了。多么糟糕的过程。
【解决方案2】:

我发现删除 WebJob 项目中的obj 目录将清除正在构建要发布的 WebJob 包的暂存区域。然后发布成功。

【讨论】:

    【解决方案3】:

    问题原因
    在 Web.Config 中更改连接字符串的名称或/和向 Web.Config 添加新的连接字符串。

    解决方案

    1. 选择网站项目,右键点击,点击发布。

    1. 按设置链接,然后从弹出窗口中选择“设置”选项卡

    2. 从所有连接字符串中取消选中 use this connection string at runtime

    1. 点击Save按钮关闭窗口。 (无需重启 Visual Studio)
    2. 尝试重新发布网站,应该可以正常发布了。

    注意
    我正在使用 VS 2017

    仅供参考
    完成前面的步骤后,我注意到 .pubxml 文件自动更改了。这是已经产生的差异(自动没有我的任何干扰)

    所以我认为这是更好的方法,因为它对开发人员来说更容易,而且它让 Visual Studio 自己解决问题,而不是为了特定的事情而强迫它。

    【讨论】:

      猜你喜欢
      • 2022-08-19
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      相关资源
      最近更新 更多