0

每次我使用發佈版本發佈Web部署包時我調用Web API時會出現此錯誤;爲什麼從發佈構建中排除XML文檔如此困難?

HTTP 500內部服務器錯誤
找不到文件 'C:\ SolutionDir \ PROJECTDIR \ BIN \ AssemblyName.xml'

這裏是我部署到服務器時執行的步驟。

  1. 在Visual Studio 2013右鍵單擊項目,然後選擇Publish...
  2. 檢查我很高興我的發佈配置文件,然後單擊Publish
  3. 找到我的Web API項目中的Deploy文件夾,並將其複製到目標(加上以前版本的檢查備份)
  4. 從我希望部署到的服務器打開Internet Information Server並選擇我希望部署的應用程序,然後右鍵單擊選擇Deploy -> Import Application...
  5. 繼導入應用程序包嚮導之後,選擇我的部署包並檢查任何設置,然後再單擊Finish

在此過程之後,我嘗試使用Fiddler測試Web API並收到上述錯誤。我嘗試了各種方法,但到目前爲止沒有任何工作,我可以使其工作的唯一方法是將XML文件從項目的Debug版本複製到服務器上的bin文件夾中。

我不明白的是我不應該這樣做才能使它工作,爲什麼Visual Studio/Web部署堅持存在XML?

解決方案我已經嘗試過

回答

1

如果您創建了某些選項的網絡API項目還包括MVC功能來顯示網頁API基於XML文檔的幫助頁面。

我認爲將在解決方案中的Nuget包叫做Microsoft.AspNet.WebApi.HelpPage。我沒有使用它,所以我沒有與它可能檢查XML文件,但也許刪除這個和MVC的東西(如果你不使用文檔)將停止它尋找XML文件。

+0

這很有趣,因爲項目確實使用'HelpPage',可能會導致它失敗,並會提供反饋。 – Lankymart