标签: web-deployment

MSDeploy runCommand使用相对路径

我试图通过MSDeploy运行命令作为我的打包/部署过程的一部分.特别是,我试图通过对我的一个DLL 运行installutil来创建自定义事件日志,但是我在部署目录中指定DLL 的相对路径时遇到问题.首先,我将以下配置添加到我的csproj中,以便在我的Manifest文件中生成runCommand提供程序.请注意DLL的绝对路径.

<PropertyGroup>
    <!-- Extends the AfterAddIisSettingAndFileContentsToSourceManifest action to create Custom Event Log -->
    <IncludeEventLogCreation>TRUE</IncludeEventLogCreation>
    <AfterAddIisSettingAndFileContentsToSourceManifest Condition="'$(AfterAddIisSettingAndFileContentsToSourceManifest)'==''">
      $(AfterAddIisSettingAndFileContentsToSourceManifest);
      CreateEventLog;
    </AfterAddIisSettingAndFileContentsToSourceManifest>
  </PropertyGroup>
  <Target Name="CreateEventLog" Condition="'$(IncludeEventLogCreation)'=='TRUE'">
    <Message Text="Creating Event Log" />
    <ItemGroup>
      <MsDeploySourceManifest Include="runCommand">
        <path>installutil C:\inetpub\wwwroot\MyTestApp\bin\BusinessLayer.dll</path>
      </MsDeploySourceManifest>
    </ItemGroup>
  </Target>
  <ItemGroup>
Run Code Online (Sandbox Code Playgroud)

在调用msbuild之后,这在package.zip中正确生成了我的清单.当我运行MyTestApp.deploy.cmd/Y时,它正确调用了msdeploy并将我的文件部署到inetpub\wwwroot\MyTestApp并从下面的清单中运行我的命令:

<runCommand path="installutil C:\inetpub\wwwroot\MyTestApp\bin\BusinessLayer.dll ... etc 
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不想将此DLL路径硬编码到c:\ inetpub\etc.如何使用默认网站下部署目录中的相对路径进行上述调用?理想情况下,我希望MSDeploy采用此路径并将其作为变量传递给runCommand语句,以便找到DLL.然后我可以编写类似的内容:<path>installutil $DeploymentDir\NewTestApp\bin\BusinessLayer.dll</path>无需担心硬编码绝对路径.

有没有办法这样做,而不是每次都使用我的DLL的绝对路径?

deployment msbuild web-deployment msdeploy webdeploy

15
推荐指数
1
解决办法
2897
查看次数

用于Web部署的Git与FTP

我知道git是什么以及如何使用它(一点点),但有一个概念我仍然不完全理解.我听说很多Web开发人员最近说他们使用git进行每个web项目,即使他们没有合作,他们只是使用git作为FTP替代品,事实上他们声称FTP是上传你网站的旧方法.

我的问题是,如何使用git上传我的网站而无需支付像beanstalk这样的服务?

真的FTP被认为是一项旧技术,我们应该使用git吗?

非常感谢

git ftp web-deployment-project web-deployment

15
推荐指数
2
解决办法
8879
查看次数

MSDeploy - 目标无法访问

我在Windows Server 2008 R2上安装了Web Deploy 3.5并尝试通过visual studio 2012运行远程发布Web应用程序.但是,我收到了错误 - 目标无法访问.

我读了一些帖子并在下面查看但仍然没有运气.

我错过了什么吗?谢谢.

asp.net web-deployment visual-studio webdeploy

15
推荐指数
1
解决办法
1万
查看次数

在使用Jenkins在远程Tomcat8上部署时,您提供的用户名不允许使用基于文本的Tomcat Manager(错误403)

我正在尝试使用Jenkins部署到容器插件在远程Tomcat(远程计算机)上部署WAR.我在tomcat-users.xml中完成了以下配置

<user username="deployer" password="deployer" roles="manager-gui,manager-script,admin" />
Run Code Online (Sandbox Code Playgroud)

我在Jenkins deployer容器插件中设置了正确的用户名密码和端口.该设置适用于本地Tomcat.但对于远程Tomcat,我不断收到以下错误:

Caused by: org.codehaus.cargo.container.tomcat.internal.TomcatManagerException: The username you provided is not allowed to use the text-based Tomcat Manager (error 403) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:555)
at org.codehaus.cargo.container.tomcat.internal.TomcatManager.list(TomcatManager.java:686) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.getStatus(TomcatManager.java:699) at org.codehaus.cargo.container.tomcat.internal.AbstractTomcatManagerDeployer.redeploy(AbstractTomcatManagerDeployer.java:174)
... 16 more Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: http://1.203.190.5:8080/manager/text/list at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown
Source) at org.codehaus.cargo.container.tomcat.internal.TomcatManager.invoke(TomcatManager.java:544) ... 19 more
Run Code Online (Sandbox Code Playgroud)

请帮忙.

tomcat web-deployment maven jenkins

15
推荐指数
3
解决办法
1万
查看次数

在 Godaddy 共享 Linux 主机上安装 Nodejs 时出错

我正在通过 PuTTy 连接到 SSH 在 Godaddy 共享 Linux 主机上安装 Node.js。获取错误。

我跑了

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
Run Code Online (Sandbox Code Playgroud)

安装 nvm 的命令。NVM 已成功安装,因为我在运行时收到响应“0.34.0” nvm --version

我正在运行nvm install node以安装 Node.js。

运行此命令后,我收到以下错误:


node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.16' not …
Run Code Online (Sandbox Code Playgroud)

linux shared-hosting web-deployment node.js npm

15
推荐指数
2
解决办法
7578
查看次数

在多个客户的Web项目中使用git

有没有更好的建议来控制Web项目,在几个客户项目中使用git进行小的随机更新?

我想使用git进行Web项目的版本控制.与几乎所有其他提案的主要区别在于,这是一个使用HTML,JavaScript和一些PHP文件的Web项目 - 没有中央库被一个或多个程序使用,就像在典型的Linux软件包中一样.

我所有不同的Web项目都是针对不同的客户,基于相同的平台文件,我估计80%的文件是相同的(称为平台),20%是针对不同的客户进行修改以满足他们的需求.这里的问题是,我不知道我们需要客户更新哪些文件 - 详细地说每个客户都不同.

最好的方法是将平台特定文件保存在一个目录中,并将这些文件与客户特定文件重叠在另一个目录中.为了用git来解决这个问题,到目前为止我没有发现什

  • git的子模块(如建议在这里)通常设计成具有供应商开发库的知情人士谁连接它的程序.因此问题是平台和客户文件位于不同的目录中,因此我必须在部署期间将它们混合以创建Web服务器的文件.此外,我必须手动保持目录树同步,这对于10个目录深度层次结构来说将是很多工作.一般来说,很多帖子抱怨使用子模块的大量管理工作,看起来有点矫枉过正.
  • git子树(就像这里提出的)似乎比子模块更简单,但是遇到了不同目录的相同问题,所以我还需要保持dir结构同步并在部署期间混合文件.此外,很难将平台变更从客户回购中推回.
  • GitSlave(就像这里提到的那样)我不确定这对我是否有益.它允许保持几个git repos同步,也许它有助于同步平台的dir结构,但我无法相信
  • 在不同的目录平台和客户文件之间重构(像结果这样的讨论)我觉得这是根本不可能在我的客户的情况,并通过网络项目使用的技术.对于一个客户,此页面需要更新,另一个页面需要更新.即使在引入PHP框架时,客户特定的更改也会分布在整个树中.
  • 签出(像还提出在最近发帖讨论)这看起来很简单的和有希望的,有缺点,即所有客户提供特定的文件是git的外部(这样的外部版本控制).此外,如果文件在平台和客户中更新,git pull会失败 - 它会中止,因此这是不可用的
  • 正如我所知,供应商分支(如此处重新开始),分支机构将被合并回来,而不是针对我的客户特定补丁.这些分支将始终是开放的,仅在从平台(主)向客户更新后合并.这将导致一个巨大的回购保留所有客户和平台信息 - 而不是处理回购的git方式.
  • 在部署期间混合.因此,一种非常务实的方法是将平台文件保存在一个仓库中,客户文件也保存在专用的仓库中.在将文件部署到Web服务器期间,它可以首先编写所有平台文件,而不是通过特定于平台的文件覆盖其中一些文件.混合发生在Web服务器目录中很晚.这也有一个缺点,即每个客户的目录结构必须手动保持与平台结构同步 - 否则部署将过于复杂.

这里最好的方法是什么?

git project web-deployment

14
推荐指数
1
解决办法
1755
查看次数

在TFS 2012中使用持续集成进行Auto Deploy

我已经为WCF项目设置了持续集成,并希望使用MSBuild Arguments自动将应用程序部署到远程服务器,但它没有部署.

运行新的Build时,所有测试都会通过,所有项目都会构建,但网站没有部署.此外,我从构建中得到的任何错误都没有说出错.

我在远程服务器上打开了端口8172,以确保可以与IIS建立连接,甚至禁用防火墙.

在构建配置中,我指定了以下参数;

/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:DeployIisAppPath="Default Web Site/MYSite" /p:MsDeployServiceUrl=http://mysite.com /p:username=MySite\Administrator /p:password=thePassword
Run Code Online (Sandbox Code Playgroud)

我从以下示例编译了此配置:

http://vishaljoshi.blogspot.co.uk/2010/11/team-build-web-deployment-web-deploy-vs.html

http://www.chrissurfleet.co.uk/post/2011/07/21/Setting-Up-Continuous-Deployment-In-TFS.aspx

我已配置服务器的IIS以启用远程连接,我可以从构建服务器远程管理IIS.此外,我已使用Visual Studio 2012发布选项成功部署了应用程序.

任何人都可以看到我的MS Build Arguments有问题吗?我错过了什么吗?

任何帮助都会非常感激

更新:

我已检查构建服务器以检查MS部署是否已安装并已安装Web Deploy 3.0以确保这是capabale,但尚未解决我的问题.

我检查了IIS连接日志,看看是否正在建立与IIS的远程连接,并且我的构建服务器与应用服务器之间没有连接.

我已尝试使用以下代码手动运行MSBuild.exe以在解决方案和项目服务器上进行项目:

MSBuild.exe "项目位置"/ P:DeployOnBuild =真/ P:DeployTarget = MsDeployPublish/P:MSDeployPublishMethod = WMSVC/p:DeployIisAppPath = "默认网站/应用"/ P:MsDeployServiceUrl = HTTP://应用程序服务器:8172/MSDeploy.axd/p:AllowUntrustedCertificate = True/p:CreatePackageOnPublish = False/p:Username = username/p:Password = password

MSBuild正在成功构建项目,但没有尝试部署它.

有任何想法吗?

deployment tfs continuous-integration tfsbuild web-deployment

14
推荐指数
1
解决办法
1万
查看次数

什么Jenkins插件可用于.NET网站部署?

我们使用: - SVN - Jenkins - MS Build插件

我们有几个Web Form/MVC/Web服务.

我们将设置Microsoft Web Deploy并从Jenkins运行bat文件.

也许有人可以提出更好的方法,或者这看起来像最有效的解决方案?

先感谢您.

asp.net msbuild web-deployment jenkins microsoft-web-deploy

14
推荐指数
1
解决办法
1万
查看次数

如何从Visual Studio 2013 Web应用程序的发布/部署中排除文件夹

我正在从Visual Studio 2013发布Web应用程序.我需要包含不属于项目一部分的文件夹,并排除一些文件夹(项目的某些部分,有些不是项目的一部分).所以我进入了我的项目属性并设置了Items To Deploy字段,All files in this project folder如下所示:

在此输入图像描述

然后我开始寻找一种排除文件夹的方法All files in this project folder.我找到了这个页面,具体说明了

Visual Studio UI不会公开您可以配置的所有部署设置.例如,您无法使用UI从部署中排除单个文件夹.但是,您可以通过编辑存储配置设置的文件来执行此操作.对于每个发布配置文件,都有一个.pubxml文件,您可以直接编辑该文件.

此页面链接到另一个解释如何编辑文件的页面,但没有解释如何排除特定文件夹.

我发现其他网站(包括这个网站)解释了如何使用csproj文件中的以下标记排除旧版Visual Studio中的文件夹:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
  ... 
  <ExcludeFilesFromDeployment>File1.aspx;File2.aspx</ExcludeFilesFromDeployment> 
  <ExcludeFoldersFromDeployment>Folder1;Folder2</ExcludeFoldersFromDeployment> 
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

但似乎csproj文件的XML元素在VS2013中不再相关.我在某个地方(不记得现在在哪里)读到这个元素已被移动到[PublishProfileName].pubxml文件的建议,但尝试这个无法工作.

我确信在Visual Studio 2013中有一种方法可以做到这一点,但对于我的生活,我无法弄清楚如何.我在Stackoverflow以及其他论坛上找到了十几个相关的问题,但在VS2013中没有一个解决方案适合我.任何帮助深表感谢.

web-deployment visual-studio-2013

14
推荐指数
1
解决办法
2万
查看次数

如何确保将appsettings.dev.json复制到输出文件夹?

我有三个配置文件,每个环境一个:

  1. appsettings.json - >制作
  2. appsettings.dev.json - >开发
  3. appsettings.stg.json - > staging

如果我将ASPNETCORE_ENVIRONMENT设置为dev,我会收到一个运行时异常,抱怨无法找到appsettings.dev.json.我尝试添加

"copyToOutput": [
  "appsettings.dev.json"
]
Run Code Online (Sandbox Code Playgroud)

buildOptionsproject.json中的部分,但它似乎没有任何影响.

有没有其他方法可以强制appsettings.dev.json被复制到输出目录?

c# asp.net configuration web-deployment asp.net-core

14
推荐指数
5
解决办法
1万
查看次数