。NET Core Web API部署到Azure后不起作用

问题描述 投票:3回答:2

我有一个简单的.NET Core Web API应用程序-由Visual Studio在创建新项目时创建的应用程序。我想将其作为Team Foundation Server(TFS)2017生成作业的一部分通过FTP部署到Azure应用服务,这是成功的:

enter image description here

但是,当尝试GET请求时,例如以下URL:

http://somerandomname.azurewebsites.net/api/values

我得到的是带有文本的404:

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

从Kudu,我收到以下错误:

enter image description here

我想念什么?

azure .net-core azure-web-sites asp.net-core-webapi azure-web-app-service
2个回答
3
投票

因此需要一个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>


2
投票

我在使用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

© www.soinside.com 2019 - 2024. All rights reserved.