我确实有一个简单的.Net Core Web api应用程序,它是由Visual Studio在创建新项目时创建的。我想通过FTP(TFS 2017构建作业的一部分)将其部署到Azure应用服务,这是成功的:
但是,当尝试使用http://somerandomname.azurewebsites.net/api/values
之类的GET时,我得到的只是带有文本的404
您要查找的资源已被删除,名称已更改或暂时不可用。
我想念什么?
答案 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设置需要进行纠正。