为什么从发布版本中排除XML文档如此困难?

时间:2016-11-17 21:21:20

标签: asp.net asp.net-web-api visual-studio-2013 iis-8 xml-documentation

每次使用Release Build发布Web部署包时,一旦调用Web API,就会出现此错误;

  

HTTP 500内部服务器错误
  找不到文件'C:\ SolutionDir \ ProjectDir \ bin \ AssemblyName.xml'

以下是我在部署到服务器时执行的步骤。

  1. 在Visual Studio 2013中右键单击“项目”,然后选择“{1}}
  2. 检查我对发布个人资料感到满意,然后点击Publish...
  3. 在我的Web API项目中找到Deploy文件夹并将其复制到目标(以及检查以前版本的备份)
  4. 从我希望部署的服务器中打开Internet Information Server并选择我要部署的应用程序,然后右键单击选择Publish
  5. 在导入应用程序包向导之后,选择我的部署包并检查任何设置,然后再单击Deploy -> Import Application...
  6. 在此过程之后,我尝试使用Fiddler测试Web API并收到上述错误。我已经尝试了各种方法但到目前为止没有任何工作,我能使其工作的唯一方法是将XML文件从项目的Debug版本复制到服务器上的Finish文件夹中。

    我不明白的是我不应该这样做才能使它工作,为什么Visual Studio / Web部署坚持XML存在?

    我已经尝试过的解决方案

1 个答案:

答案 0 :(得分:1)

如果使用某些选项创建Web API项目,它还包括MVC功能,以根据XML文档显示Web API帮助页面。

我认为解决方案中的Nuget包称为Microsoft.AspNet.WebApi.HelpPage

我从来没有使用过它,所以当它可能检查XML文件时我没有意识到,但是可能会删除这个和MVC的东西(如果你不使用文档)会停止它正在寻找XML文件。