.Net Core Web API部署到Azure后无法正常工作

时间:2018-07-27 12:40:52

标签: azure .net-core azure-web-sites asp.net-core-webapi azure-web-app-service

我确实有一个简单的.Net Core Web api应用程序,它是由Visual Studio在创建新项目时创建的。我想通过FTP(TFS 2017构建作业的一部分)将其部署到Azure应用服务,这是成功的:

enter image description here

但是,当尝试使用http://somerandomname.azurewebsites.net/api/values之类的GET时,我得到的只是带有文本的404

  

您要查找的资源已被删除,名称已更改或暂时不可用。

从Kudu我收到以下错误: enter image description here

我想念什么?

2 个答案:

答案 0 :(得分:1)

因此需要一个web.config。当添加新项目时,VS 2017会填充一些默认值,这是不好的。使用VS 2017 Web API默认项目,我已经使用右键菜单发布了它。这无缝地工作。我已经从Azure Web服务中获取了web.config并将其集成到我自己的项目中,仅更改了dll名称。现在,当构建作业代表TFS运行时,它在文件中包含web.config,这些文件通过FTP上传到Azure应用服务。

这是我结束的web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
  <remove name="aspNetCore"/>
  <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
</handlers>
  <aspNetCore processPath="dotnet" arguments=".\Somerandomname.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>

答案 1 :(得分:1)

使用Azure DevOps时遇到类似的问题。

我决定尝试通过右键单击将发布部署到其他应用程序服务,以便可以看到应该具有的web.config。

右键单击部署的应用程序确实显示/ api / values,而devops应用程序没有显示。

web.configs中唯一的区别是stdoutLogFile的位置

使用右键单击部署

stdoutLogFile="\\?\%home%\LogFiles\stdout"  

使用devops

stdoutLogFile=".\logs\stdout

但是右键单击部署已经包含了我所有的第三方dll,所以我在想我的devops管道nuget设置需要进行纠正。

我是asking about that here