Yan*_*iv 5 visual-studio-2010 web-deployment
我发生了一些奇怪的事情。我使用 web.config 转换文件,当尝试发布到本地 iis 作为网络部署时,我收到以下错误:
错误 1160 “ParameterizeTransformXml”任务意外失败。System.UriFormatException:无效的 URI:URI 为空。在 System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind) 在 System.Uri..ctor(String uriString) 在 Microsoft.Web.Publishing.Tasks.ParameterizeTransformXml.Execute()
在 Microsoft.Build.BackEnd.TaskExecutionHost。 Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult)
在我向项目添加一些图像文件之前它确实有效,并且当转换文件基本上仍然相同时,它确实在调试模式下工作。
有没有人遇到过这种情况并知道可能导致这种情况的原因?
这是在 Visual Studio 2010 和框架 4.0、Windows 7 下。
我有同样的错误信息。它发生在我复制新版本的 web.config 之后,有人在其他环境中手动进行了许多更改。
我使用准二进制搜索发现了这个问题。即使用 Beyond Compare,我会复制前半部分的更改,看看它是否仍然产生错误。如果是这样,那么我会重新开始,只在第一季度的更改等中复制......
我的错误是以下设置:
<setting name="InvalidItemNameChars" value="\/:?"<>|[]" />
Run Code Online (Sandbox Code Playgroud)
注意“大于”符号!
我通过将设置更改为:
<setting name="InvalidItemNameChars" value="\/:?"<>|[]" />
Run Code Online (Sandbox Code Playgroud)
某些东西可能编辑了配置文件,无论是主 web.config (最有可能)还是转换文件,也可能将编码格式从 ANSI 切换为 UTF8 或类似格式,并混淆了转义字符。
我只是在将当前版本和旧版本保存为文件并使用超越比较数据比较时才发现它。请注意,之前使用复制粘贴到每个比较窗口中的比较没有显示问题,因此请使用文件进行比较。