我有一个webapi 2.0,我使用ftp发布到运行IIS 8.5的Windows 2012服务器。
我遇到了一个问题,我可以在这里使用此链接解决这个问题;
Error 405 – Methods not Allowed in ASP.NET Core PUT and DELETE requests
所以添加;
<modules runAllManagedModulesForAllRequests="false">
<remove name="WebDAVModule" />
</modules>
我可以解决我的PUT和DELETE问题,但每当我发布时,我都需要对web.config进行物理编辑以反映上面代码的添加?
当我使用带有Web部署的ftp发布时,有人能告诉我如何自动添加吗?
我的program.cs中有默认构建;
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
答案 0 :(得分:1)
我所做的一个解决方案是创建一个Powershell脚本,该脚本将根据您的需要修改您的web.config文件并将其作为预发布目标执行。
将脚本保存在项目目录中并更新.csproj
文件,以便它在发布项目之前运行:
在Visual Studio中左键单击项目名称 - &gt; &#34;编辑.csproj&#34;并将其插入<Project>
标记内的某处:
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish" Condition=" '$(IsCrossTargetingBuild)' != 'true' ">
<Exec Command="powershell.exe -NonInteractive -File Prepublish.ps1" />
</Target>
编辑:
我的任务更简单,我只需删除添加到LAUNCHER_ARGS
元素的<aspNetCore>
,所以我只用一个空字符串替换了一个简单的字符串,
Prepublish.ps1:
(Get-Content web.config).Replace(" arguments=`"%LAUNCHER_ARGS%`"", "") | Set-Content web.config