如何为WebJob项目设置连接字符串?

时间:2015-02-08 07:02:18

标签: visual-studio-2013 azure-web-sites azure-webjobs

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

  

C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \网络\ Microsoft.Web.Publishing.targets(4270,5):   错误:'MyWebJob.Models.MyDataEntities-Web.config连接   String'参数不能为null或为空   C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \网络\ Microsoft.Web.Publishing.targets(4270,5):   错误:'MyWebJob.Models.MoreDataEntities-Web.config连接   String'参数不能为null或为空。

部署WebJob有两种选择

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

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

3 个答案:

答案 0 :(得分:47)

我发现为

提供了一个值
 <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>

希望有所帮助。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

<强>解决方案

  1. 选择网站项目,右键单击它,然后单击“发布”。 enter image description here
    1. 按设置链接,然后从弹出窗口中选择“设置”标签

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

    3. enter image description here

      1. 点击Save按钮关闭窗口。 (无需重新启动Visual Studio)
      2. 尝试再次发布网站,它应该没有问题发布。
      3. 注意
        我正在使用VS 2017

        仅供注意
        完成前面的步骤后,我注意到.pubxml文件自动更改。这是差异(自动不受我的干扰)

        所以我认为这是更好的方式,因为它对开发人员来说更容易,而且它让视觉工作室自己解决问题,而不是强迫它用于特定的事情。

        enter image description here