【发布时间】:2015-08-01 21:06:38
【问题描述】:
我在 Visual Studio Online 上创建了一个 (Git) 存储库,并在其中放置了一个包含两个项目的解决方案:
- 一个空的网络项目
- 一个简单的命令行应用程序
我右键单击 Web 项目并选择“添加 > 现有项目作为 Azure WebJob”并通过向导。这向两者添加了 Microsoft.Web.WebJobs.Publish 包,以及一些 json 配置文件。我推动一切,等待它构建。
当它出现在 Azure 上时,没有 App_Data 文件夹,因此该作业无法运行。我相信Microsoft.Web.WebJobs.Publish 添加的.targets 应该可以将这一切设置为正确构建。
我什至尝试将我的命令行应用程序更改为直接构建到(website)\App_Data\Jobs\Continuous\MyJob。然而,再一次,一旦它进入 Azure,就没有 App_Data 文件夹(VS Online 构建日志确实显示我的 exe 进入了 App_Data 文件夹)。
我如何让它工作?理想情况下,我想跳过 NuGet 包(我想完全了解发生了什么,而不是仅仅拉入大量库),但最终,我会满足于不工作!
很多年前,AppHarbor 能够将简单的 .exes 作为后台作业运行,我相信它不应该这么复杂。
构建日志
这是构建日志的一些部分,显示作业进入正确的文件夹(注意:网站部分部署良好):
2015-08-01T20:55:51.5459770Z 2>_CopyFilesMarkedCopyLocal:
2015-08-01T20:55:51.5479760Z Copying file from "C:\a\537fbab6\TuppenySlackBot\packages\SimpleSlackBot.0.1.0.0\lib\net452\SimpleSlackBot.dll" to "..\SlackBotRedirect\App_Data\Jobs\Continuous\TuppenySlackBot\SimpleSlackBot.dll".
2015-08-01T20:55:51.5489762Z _CopyAppConfigFile:
2015-08-01T20:55:51.5489762Z Copying file from "App.config" to "..\SlackBotRedirect\App_Data\Jobs\Continuous\TuppenySlackBot\TuppenySlackBot.exe.config".
2015-08-01T20:55:51.5499768Z CopyFilesToOutputDirectory:
2015-08-01T20:55:51.5509761Z Copying file from "obj\Debug\TuppenySlackBot.exe" to "..\SlackBotRedirect\App_Data\Jobs\Continuous\TuppenySlackBot\TuppenySlackBot.exe".
2015-08-01T20:55:51.5519765Z TuppenySlackBot -> C:\a\537fbab6\TuppenySlackBot\SlackBotRedirect\App_Data\Jobs\Continuous\TuppenySlackBot\TuppenySlackBot.exe
2015-08-01T20:55:51.5519765Z Copying file from "obj\Debug\TuppenySlackBot.pdb" to "..\SlackBotRedirect\App_Data\Jobs\Continuous\TuppenySlackBot\TuppenySlackBot.pdb".
2015-08-01T20:55:51.5569769Z 2>Done Building Project "C:\a\537fbab6\TuppenySlackBot\TuppenySlackBot\TuppenySlackBot.csproj" (default targets).
2015-08-01T20:55:51.5589764Z 1>Done Building Project "C:\a\537fbab6\TuppenySlackBot\TuppenySlackBot.sln" (default targets).
Azure 目录列表
我在Azure门户中访问网站,点击工具,然后控制台,运行dir,没有App_Data
_ _____ _ ___ ___
/_\ |_ / | | | _ \ __|
_ ___/ _ \__/ /| |_| | / _|___ _ _
(___ /_/ \_\/___|\___/|_|_\___| _____)
(_______ _ _) _ ______ _)_ _
(______________ _ ) (___ _ _)
Manage your web app environment by running common commands ('mkdir', 'cd' to change directories, etc.) This is a sandbox environment, so any commands that require elevated privileges won't work.
D:\home\site\wwwroot
> dir
D:\home\site\wwwroot
Volume in drive D is Windows
Volume Serial Number is C83A-45BE
Directory of D:\home\site\wwwroot
08/01/2015 08:34 PM <DIR> .
08/01/2015 08:34 PM <DIR> ..
08/01/2015 07:58 PM <DIR> bin
08/01/2015 08:59 PM 1,621 BuildInfo.config
08/01/2015 06:35 PM 202,392 hostingstart.html
08/01/2015 08:47 PM 157 packages.config
08/01/2015 08:34 PM <DIR> Properties
08/01/2015 08:59 PM 240 Web.config
4 File(s) 204,410 bytes
4 Dir(s) 1,073,143,808 bytes free
(这个站点只有一个Web.config是正确的,它只是重定向,因为我只对这个工作感兴趣。Web.config有正确的内容)。
编辑:我认为这是同一个问题posted here,没有发布解决方案。
【问题讨论】:
-
你有没有用 Kudu 检查作业是否存在?
-
我在 Azure 的“工具”部分中使用了“控制台”按钮,这让我可以看到文件系统。没有 App_Data 文件夹:(
-
检查构建输出(它会告诉您它发布到的站点和目录)并确保您发布到预期的 WebApp(网站)。管理多个网站时很容易混淆。
-
@BrentNewbury 我没有多个站点,只有一个。构建工作正常,日志显示工作构建到正确的文件夹中。问题似乎是,当 Azure 获取构建的输出时,它没有获取 App_Data 文件夹(VSOnline 删除了它)。我真的不知道这个 AzureVSOnline 部署位是如何工作的,而且似乎没有太多的可见性?
-
我已经用 Azure 的构建日志 + dir 输出更新了帖子。
标签: azure azure-web-app-service azure-devops azure-webjobs