我已经阅读了利用MSDeploy在远程计算机上安装Windows服务甚至性能计数器的地方.我看到如何使用从源目录到目标目录的MSDeploy"sync"来实现这一点.有没有办法让源实际上是.zip文件本身包含的二进制文件,这样.zip可以复制到远程机器上,然后执行msdeploy?如果是这样,如何在manifest.xml中引用源目录?除了传统的网站和数据库部署之外,MSDeploy上似乎没有大量文档.任何有用的链接将不胜感激.
我们的产品是ASP.Net Web应用程序.目前,我们在Visual Studio中使用Web站点项目,但一直在研究使用Web应用程序项目.我目前正在研究它们,以便我们可以改进我们的部署过程.
我们有一个在不同客户端之间共享和通用的基本网站,然后我们在客户端网站项目中使用特定于客户端的功能扩展它.客户端项目扩展基础,因此依赖于其内容.要构建完整的产品,我们首先部署基本网站,然后将其与客户端项目中的内容重叠.
在Visual Studio中转换为Web应用程序项目时,我们希望能够创建基础项目,然后创建客户端项目并设置对base的引用.这种结构似乎工作正常,但是当我们尝试使用MSDeploy从客户端项目部署应用程序时,只发布基本网站的dll.这对某些事情来说很好,引用编译的代码很有用,但还有其他项目,如images,js pages,htm等,它们仍然是客户端应用程序运行所必需的源代码.我们需要的不仅仅是基础网站的编译代码.
尽管如此,我可以在这里想到几个选择:
我错过了不同的选择吗?我在设置项目的方式上做错了吗?除了共享编译代码之外,是否还有更多使Web应用程序引用另一个Web应用程序?如果是这种情况,为什么不只是使用共享类库?或者我可能错过了MS Deploy流程的一些内容?
我对这里的建议持开放态度,因为我觉得我错过了一些东西.我不认为我们的Web应用程序模型太独特了.
更新:双部署过程确实有效,但感觉有点笨拙.还有其他输入吗?
asp.net deployment web-applications msdeploy vs-web-application-project
我认识到Web Deployment Projects不支持Visual Studio 2012.看完这篇文章后,我试着开始Publish Profiles工作.
安装Visual Studio Web发布更新后,我能够使用新的发布对话框发布网站项目和Web应用程序项目Visual Studio 2012.
因为我们正在使用TFS 2010 Team Build我试图通过MSBuild参数使用发布配置文件.但以下语句仅适用于发布Web应用程序项目.
MSBuild.exe MyWebs.sln /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=DeployToDirectory.pubxml
Run Code Online (Sandbox Code Playgroud)
如果我尝试发布网站项目没有任何反应.我的网站项目的发布配置文件仅适用于新的发布对话框,Visual Studio 2012但不适用于调用时MSBuild.
任何的想法?
我正在运行IIS 8和Windows Server 2012.我已经安装了Web Deploy,当我尝试选择一个用户授予发布权限时,我立即崩溃而没有任何错误对话框.当我进入事件查看器时,我能够看到以下错误:
IISMANAGER_CRASH
IIS Manager terminated unexpectedly.
Exception:System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.OverflowException: Arithmetic operation resulted in an overflow.
at Microsoft.Web.Deployment.UI.ObjectPickerWrapper.ShowObjectPicker(IntPtr parentHandle, Boolean usersOnly)
at Microsoft.Web.Deployment.UI.SelectExistingUserForm.OnWindowsBrowseButtonClick(Object sender, EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, …Run Code Online (Sandbox Code Playgroud) 对于ASP.NET项目,MSBuild在E:\ Build中提供了一些文件,例如:
从Windows 7部署到Windows Server 2008 R2(IIS 7)
执行命令会显示以下错误消息:
命令
C:\Program Files\IIS\Microsoft Web Deploy V3>msdeploy.exe -verb:sync -source:contentPath='E:\Build' -dest:contentPath='ra/files-to-pub',ComputerName="https://<IP>:8172/msdeploy.axd?site=ra",UserName='DEV\Administrator',Password='MyPassword',AuthType='Basic' -enableRule:DoNotDeleteRule -whatif -allowUntrusted
Run Code Online (Sandbox Code Playgroud)
错误信息:
Info: Using ID 'd1bbee7a-e940-4be1-b41d-1847b3e7022d' for connections to the remote server.
Error Code: ERROR_COULD_NOT_CONNECT_TO_REMOTESVC
More Information: Could not connect to the remote computer ("[IP ADDRESS]") using the specified process ("Web Management Service") because the server did not respond. Make sure that the process ("Web Management Service") is started on the remote computer.
Learn more at: …
根据这篇文章,MSDeploy可以在部署时自动删除App_Offline.htm文件.
遗憾的是,当使用VSOnline"GitContinuousDeploymentTemplate"构建过程并部署到Windows Azure网站时,它似乎不起作用.
是否有任何解决方法来利用此功能?在构建开始之前不需要手动停止网站的任何其他解决方案?
在了解如何将ASP.NET 5应用程序发布到Azure Web App时,我遇到了几种发布.NET Web应用程序的方法:
MSDeployWebDeployPublish-AzureWebsiteProjectdnu publish互联网上关于这一点的信息非常分散,我无法理解这些不同的"技术"的用途.
它们之间的主要区别是什么?应该/何时可以使用它们?
我正在尝试在 .net 核心 sdk docker 映像上构建一个 web 部署包,用于部署到运行 iis 的 windows 服务器(部署在单独的 windows vm 上完成)。这是我正在运行的命令(这也可以通过 Visual Studio 中的发布 UI 完成):
dotnet publish src/SpaceForce.sln -c release -o out -p:WebPublishMethod=Package;PackageAsSingleFile=True;DesktopBuildPackageLocation="../Package/SpaceForce.WebAPI.zip"
Run Code Online (Sandbox Code Playgroud)
在 Windows 上,这会生成一个包含以下文件的文件夹,然后当我准备好部署时,我只需运行 cmd 文件:
SpaceForce.WebAPI.deploy.cmd
SpaceForce.WebAPI.deploy-readme.txt
SpaceForce.WebAPI.Parameters.xml
SpaceForce.WebAPI.SetParameters.xml
SpaceForce.WebAPI.SourceManifest.xml
SpaceForce.WebAPI.zip
Run Code Online (Sandbox Code Playgroud)
但在 Linux (.net core sdk docker image) 上,它会产生以下错误:
/usr/share/dotnet/sdk/3.1.300/Sdks/Microsoft.NET.Sdk.Publish/targets/PublishTargets/Microsoft.NET.Sdk.Publish.MSDeployPackage.targets(97,5): error MSB6004: The specified task executable location "%ProgramW6432%/IIS/Microsoft Web Deploy V3/msdeploy.exe" is invalid. [/home/osboxes/src/spaceforce/src/SpaceForce.WebAPI/SpaceForce.WebAPI.csproj]
Run Code Online (Sandbox Code Playgroud)
在此页面上,它有此注释,但我不确定这是否适用于我的情况:
该
dotnet msbuild命令是一个跨平台命令,可以在 macOS 和 Linux 上编译 ASP.NET Core 应用程序。但是,macOS 和 Linux 上的 MSBuild …
我有一个有效的ASP.NET MVC 3应用程序.该项目使用VS 2010构建,目标是.NET 4.0.现在我将其重新定位到.NET 4.5并成功重新编译.尝试将其部署到我们的测试服务器(Windows 2008 R2 SP1)现在失败:
错误代码:ERROR_APPPOOL_VERSION_MISMATCH更多信息:您尝试使用的应用程序池将"managedRuntimeVersion"属性设置为"v4.0".此应用程序需要'v4.5'.有关详情,请访问:http://go.microsoft.com/fwlink/?LinkId = 221672 #ERROR_APPPOOL_VERSION_MISMATCH.
服务器安装了.NET 4.5,但没有应用程序池4.5(因为它是在位升级,因为我理解4.0池应该没问题).客户端计算机具有VS 2012,因此Web Deploy 3(之前是Web Deploy 2).我还在服务器上安装了Web Deploy 3.
试图重新注册ASP.NET aspnet_regiis- 没有运气.
为什么我会收到错误以及如何解决?这太令人沮丧了......
ps发现类似的问题关于RC但它没有帮助
更新:
看起来这是微软自CTP以来没有修复的错误.IgnoreDeployManagedRuntimeVersion财产做了伎俩.多可惜!