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

Visual studio 2013 如何为WebJob项目设置连接字符串?,visual-studio-2013,azure-web-app-service,azure-webjobs,Visual Studio 2013,Azure Web App Service,Azure Webjobs,我正在尝试设置网站和webjob,但每次尝试独立于网站发布webjob时都会出现错误(即从上下文菜单中选择发布为Azure webjob) C:\程序文件 (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(4270,5): 错误:“MyWebJob.Models.MyDataEntities-Web.config”连接失败 “字符串”参数不能为null或空。 C:\程序文件 (x86)\

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

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

部署WebJob有两个选项

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


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

我发现为

 <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>


希望对您有所帮助。

我发现删除WebJob项目中的
obj
目录将清除生成要发布的WebJob包的暂存区域。发布成功。

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

解决方案

  • 选择网站项目,右键单击它,然后单击发布。

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

  • 从所有连接字符串中取消选中运行时使用此连接字符串

  • 单击
    保存
    按钮关闭窗口。(无需重新启动Visual Studio)
  • 尝试再次发布该网站,它应该发布没有问题
  • 注意
    我正在使用VS2017

    仅供参考
    在完成前面的步骤后,我注意到.pubxml文件会自动更改。以下是所产生的差异(自动进行,无需我的任何干扰)

    所以我认为这是一个更好的方法,因为这对开发者来说更容易,而且它让VisualStudio自己解决问题,而不必为特定的事情强迫它


    您是否尝试过删除发布配置文件并重新发布?我也有同样的问题,删除和重新发布都不会改变it@l19很多时候,因为只有在删除发布配置文件并清除后,错误才会消失。更多答案可以在这里找到:这有时对我有用。我有一个有多个配置文件的项目。它对其中一个有效,但对另一个无效。好的,如果您在更改pubxml文件后重新启动Visual Studio,它似乎有效。我可以确认这对我也有效,但是我们知道是什么导致了问题吗?我到底应该在{deployment connection string}中写入什么。当前,我的visual studio实例在尝试部署webjob时崩溃…@skorzinetzki我将字母
    s
    放在那里,它开始工作。多么糟糕的过程。