为什么我的测试发布配置文件使用我的发布配置? [英] Why does my test publish profile use my release configuration?

查看:85
本文介绍了为什么我的测试发布配置文件使用我的发布配置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,



我在使用正确的appSettings部署web.config时遇到问题。我希望有人可以帮助我。



我正在部署一个Web API,将错误消息记录到服务器上的日志文件中。根据我是部署为'test'还是'production',日志文件路径会有所不同。



开发中的web.config看起来像这样: />


<?xml version =" 1.0" encoding =" utf-8"?>

< configuration>

...

  < appSettings>

...

  &NBSP; < add key =" LogPath" value =" C:\ Users \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ < / appSettings>

...

< / configuration>



我有两个转换文件:web.Test.config和web.Release.config。



这是web.Test .config看起来像:



<?xml version =" 1.0" encoding =" utf-8"?>

< configuration xmlns:xdt =" http://schemas.microsoft.com/XML-Document-Transform">


...

  < appSettings>

  &NBSP; < add key =" LogPath"值= QUOT; C:\inetpub\wwwroot\RiskAliveAPI\log.txt" XDT:变换= QUOT; SetAttributes" xdt:Locator =" Match(key)" />

  < / appSettings>

...
$
< / configuration>



这是什么web.Release .config看起来像:



<?xml version =" 1.0" encoding =" utf-8"?>

< configuration xmlns:xdt =" http://schemas.microsoft.com/XML-Document-Transform">


...

  < appSettings>

  &NBSP; < add key =" LogPath"值= QUOT; C:\inetpub\wwwroot\RiskAliveProdAPI\log.txt" XDT:变换= QUOT; SetAttributes" xdt:Locator =" Match(key)" />

  < / appSettings>

...
$
< / configuration>



我的发布资料已设置使用测试配置,但出于某种原因,在部署Web API之后,它看起来像是使用了发布配置的日志路径。也就是说,如果我进入服务器并查看web.config,我会看到:



<?xml version =" 1.0" encoding =" utf-8"?>

< configuration>

...

  < appSettings>

...

  &NBSP; < add key =" LogPath"值= QUOT; C:\inetpub\wwwroot\RiskAliveProdAPI\log.txt" />

  < / appSettings>

...
$
< / configuration>



这是我的测试发布个人资料:
$


<?xml version =" 1.0" encoding =" utf-8"?>

<! -

此文件由Web项目的发布/包过程使用。您可以通过编辑此MSBuild文件来自定义此过程的行为

。要了解有关详情,请访问http://go.microsoft.com/fwlink/?LinkID=208121. 

- >

< Project ToolsVersion =" 4.0" xmlns =" http://schemas.microsoft.com/developer/msbuild/2003">

  < PropertyGroup>

  &NBSP; < WebPublishMethod> MSDeploy< / WebPublishMethod>

  &NBSP; < LastUsedBuildConfiguration>测试< / LastUsedBuildConfiguration>

  &NBSP; < LastUsedPlatform>任何CPU< / LastUsedPlatform>

  &NBSP; < SiteUrlToLaunchAfterPublish />

  &NBSP; < LaunchSiteAfterPublish> True< / LaunchSiteAfterPublish>

  &NBSP; < ExcludeApp_Data> False< / ExcludeApp_Data>

  &NBSP; < MSDeployServiceURL> ec2-54-159-229-158.compute-1.amazonaws.com< / MSDeployServiceURL>

  &NBSP; < DeployIisAppPath>默认网站/ RiskAliveAPI< / DeployIisAppPath>

  &NBSP; < RemoteSitePhysicalPath />

  &NBSP; < SkipExtraFilesOnServer> True< / SkipExtraFilesOnServer>

  &NBSP; < MSDeployPublishMethod> WMSVC< / MSDeployPublishMethod>

  &NBSP; < EnableMSDeployBackup> True< / EnableMSDeployBackup>

  &NBSP; < UserName> ***< / UserName>

  &NBSP; < _SavePWD> True< / _ SavePWD>

  &NBSP; < PublishDatabaseSettings>

  &NBSP; &NBSP; < Objects xmlns ="">

  &NBSP; &NBSP; &NBSP; < ObjectGroup Name =" AuthContext"为了= QUOT 1 QUOT;已启用="错误">

  &NBSP; &NBSP; &NBSP; &NBSP; < Destination Path =" Data Source = riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com; Initial Catalog = RiskAlive; User ID = riskalive; Password = sql65RiskAlive !; Pooling = False; Application Name = RiskAlive" Name =" Data
Source = riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com; initial catalog = RiskAlive; Pooling = False; User ID = riskalive; Password = sql65RiskAlive !; MultipleActiveResultSets = True;应用程式= RiskAlive" />

  &NBSP; &NBSP; &NBSP; &NBSP; < Object Type =" DbCodeFirst">

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; < Source Path =" DBContext" DbContext =" WebAPI.AuthContext,WebAPI"原点= QUOT;公约" />

  &NBSP; &NBSP; &NBSP; &NBSP; < / Object>

  &NBSP; &NBSP; &NBSP; < / ObjectGroup>

  &NBSP; &NBSP; &NBSP; < ObjectGroup Name =" RiskAliveEntities"为了= QUOT; 2英寸已启用="错误">

  &NBSP; &NBSP; &NBSP; &NBSP; < Destination Path =" Data Source = riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com; Initial Catalog = RiskAlive; User ID = riskalive; Password = sql65RiskAlive !; Pooling = False; Application Name = RiskAlive" Name =" Data
Source = riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com; initial catalog = RiskAlive; Pooling = False; User ID = riskalive; Password = sql65RiskAlive !; MultipleActiveResultSets = True;应用程式= RiskAlive" />

  &NBSP; &NBSP; &NBSP; &NBSP; < Object Type =" DbCodeFirst">

  &NBSP; &NBSP; &NBSP; &NBSP; &NBSP; < Source Path =" DBContext" DbContext =" ACM.RiskAlive.Core.Data.RiskAliveEntities,ACM.RiskAlive.Core"原点= QUOT;结构" />

  &NBSP; &NBSP; &NBSP; &NBSP; < / Object>

  &NBSP; &NBSP; &NBSP; < / ObjectGroup>

  &NBSP; &NBSP; < / Objects>

  &NBSP; < / PublishDatabaseSettings>

  &NBSP; < ADUsesOwinOrOpenIdConnect> False< / ADUsesOwinOrOpenIdConnect>

  < / PropertyGroup>

  < ItemGroup>

  &NBSP; < MSDeployParameterValue Include =" $(DeployParameterPrefix)AuthContext-Web.config Connection String">

  &NBSP; &NBSP; < ParameterValue> Data Source = riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com; initial catalog = RiskAlive; Pooling = False; User ID = riskalive; Password = sql65RiskAlive !; MultipleActiveResultSets = True; App = RiskAlive< / ParameterValue>

  &NBSP; < / MSDeployParameterValue>

  &NBSP; < MSDeployParameterValue Include =" $(DeployParameterPrefix)RiskAliveEntities-Web.config Connection String">

  &NBSP; &NBSP; <&的parameterValue GT;元数据= RES://*/Data.RiskAliveModel.csdl | RES://*/Data.RiskAliveModel.ssdl | RES://*/Data.RiskAliveModel.msl;提供商= System.Data.SqlClient的; provider connection string =" Data Source = riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com; initial
catalog = RiskAlive; Pooling = False; User ID = riskalive; Password = sql65RiskAlive !; MultipleActiveResultSets = True; App = RiskAlive"< / ParameterValue>

  &NBSP; < / MSDeployParameterValue>

  < / ItemGroup>

< / Project>



请帮助我理解为什么测试发布配置文件正在使用发布配置,即使我告诉它使用测试配置。谢谢。

解决方案

朋友,


感谢您的帖子。


由于您的问题与Web API开发更相关,我建议您在以下论坛上发布您的问题:



https://forums.asp.net/1246.aspx/1 ?网络+ API



祝你好运,


Fletch


Hello,

I'm have issues with deploying my web.config with the correct appSettings. I'm hoping someone can help me out.

I'm deploying a web API that logs error messages to a log file on the server. Depending on whether I deploy as 'test' or 'production', the log file path will be different.

My web.config in development looks like this:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <appSettings>
...
    <add key="LogPath" value="C:\Users\junkm\Source\Repos\RiskAlive3\WebAPI\log.txt"/>
  </appSettings>
...
</configuration>

I have two transform file: web.Test.config and web.Release.config.

Here's what web.Test.config looks like:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
...
  <appSettings>
    <add key="LogPath" value="C:\inetpub\wwwroot\RiskAliveAPI\log.txt" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>
...
</configuration>

Here's what web.Release.config looks like:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
...
  <appSettings>
    <add key="LogPath" value="C:\inetpub\wwwroot\RiskAliveProdAPI\log.txt" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>
...
</configuration>

My publish profile is set to use the test configuration, but for some reason, after deploying the web API, it looks like it uses the log path of the release configuration. That is, if I got onto the server and look at web.config, I see this:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <appSettings>
...
    <add key="LogPath" value="C:\inetpub\wwwroot\RiskAliveProdAPI\log.txt" />
  </appSettings>
...
</configuration>

Here is my test publish profile:

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>Test</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <MSDeployServiceURL>ec2-54-159-229-158.compute-1.amazonaws.com</MSDeployServiceURL>
    <DeployIisAppPath>Default Web Site/RiskAliveAPI</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <UserName>***</UserName>
    <_SavePWD>True</_SavePWD>
    <PublishDatabaseSettings>
      <Objects xmlns="">
        <ObjectGroup Name="AuthContext" Order="1" Enabled="False">
          <Destination Path="Data Source=riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com;Initial Catalog=RiskAlive;User ID=riskalive;Password=sql65RiskAlive!;Pooling=False;Application Name=RiskAlive" Name="Data Source=riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com;initial catalog=RiskAlive;Pooling=False;User ID=riskalive;Password=sql65RiskAlive!;MultipleActiveResultSets=True;App=RiskAlive" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="WebAPI.AuthContext, WebAPI" Origin="Convention" />
          </Object>
        </ObjectGroup>
        <ObjectGroup Name="RiskAliveEntities" Order="2" Enabled="False">
          <Destination Path="Data Source=riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com;Initial Catalog=RiskAlive;User ID=riskalive;Password=sql65RiskAlive!;Pooling=False;Application Name=RiskAlive" Name="Data Source=riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com;initial catalog=RiskAlive;Pooling=False;User ID=riskalive;Password=sql65RiskAlive!;MultipleActiveResultSets=True;App=RiskAlive" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="ACM.RiskAlive.Core.Data.RiskAliveEntities, ACM.RiskAlive.Core" Origin="Configuration" />
          </Object>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings>
    <ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
  </PropertyGroup>
  <ItemGroup>
    <MSDeployParameterValue Include="$(DeployParameterPrefix)AuthContext-Web.config Connection String">
      <ParameterValue>Data Source=riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com;initial catalog=RiskAlive;Pooling=False;User ID=riskalive;Password=sql65RiskAlive!;MultipleActiveResultSets=True;App=RiskAlive</ParameterValue>
    </MSDeployParameterValue>
    <MSDeployParameterValue Include="$(DeployParameterPrefix)RiskAliveEntities-Web.config Connection String">
      <ParameterValue>metadata=res://*/Data.RiskAliveModel.csdl|res://*/Data.RiskAliveModel.ssdl|res://*/Data.RiskAliveModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=riskalive.czov2x1choqv.us-east-1.rds.amazonaws.com;initial catalog=RiskAlive;Pooling=False;User ID=riskalive;Password=sql65RiskAlive!;MultipleActiveResultSets=True;App=RiskAlive"</ParameterValue>
    </MSDeployParameterValue>
  </ItemGroup>
</Project>

Please help me understand why the test publish profile is using the release configuration even though I tell it to use the test configuration. Thank you.

解决方案

Hi friend,

Thanks for your post.

As your issue is more related to Web API developing, I suggest you post your issue on the forum below:

https://forums.asp.net/1246.aspx/1?Web+API

Best regards,

Fletch


这篇关于为什么我的测试发布配置文件使用我的发布配置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆