无法在 Azure 门户中查看通过 Visual Studio 创建/部署的函数的代码,但是当我通过门户创建函数时可以
Posted
技术标签:
【中文标题】无法在 Azure 门户中查看通过 Visual Studio 创建/部署的函数的代码,但是当我通过门户创建函数时可以【英文标题】:Cannot view code in Azure portal for function created / deployed via Visual Studio, yet I can when I make the function via the portal 【发布时间】:2018-07-25 16:35:18 【问题描述】:我有一个在 Azure 门户中创建的 Azure 函数。我添加了一个计时器功能和一些虚拟代码,它工作正常;我在浏览器中创建并编写了代码——我们称之为FunctionA
。
然后我在 Visual Studio 2017 中创建了一个新项目 (FunctionB
),添加了一个新的计时器函数并将其发布到前面提到的同一 Azure 函数中。有趣的是,当我访问门户时,我仍然可以看到 FunctionA
的代码,但对于 FunctionB
,我看到的只是 local.settings.json 文件 - 没有代码可见。
然后我在顶部收到这条消息:
您的应用目前处于只读模式,因为您发布了一个 生成的function.json。对 function.json 所做的更改不会 函数运行时授予荣誉
我认为这意味着我的 VS2017 项目中的 local.settings.json 文件以某种方式将其设为只读,但这并不能解释为什么我什至无法在 Azure 门户中看到代码,更不用说对其进行编辑了。
FunctionB 的代码如下:
namespace DemoAzureFunction
public static class Function1
[FunctionName("Function1")]
public static void Run([TimerTrigger("0 0 5 * * *")]TimerInfo myTimer, TraceWriter log)
log.Info($"C# Timer trigger function executed at: DateTime.Now");
浏览器内代码编辑/查看是一个非常酷的功能。即使我编辑默认的local.settings.json
文件并发布它也没有什么区别。
【问题讨论】:
【参考方案1】:这是设计使然。更改代码对于 VS 创建的函数(预编译函数)没有意义,因为您的代码已经编译为 dll。
如果您查看 kudu (https://your-function-app-name.scm.azurewebsites.net/DebugConsole),您会发现门户和 VS 创建的函数的文件夹结构不同。
有关门户和 VS 创建函数的更多信息:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-dotnet-class-library
https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-csharp
【讨论】:
感谢您的回答。我主要关心的是源代码的可见性,而不是编辑它。我在网上看到将 .cs 文件的“复制到输出目录”设置为“始终复制”会导致它传播到门户网站,但是在 VS2017 中更改此设置后,我得到了一个错误。以上是关于无法在 Azure 门户中查看通过 Visual Studio 创建/部署的函数的代码,但是当我通过门户创建函数时可以的主要内容,如果未能解决你的问题,请参考以下文章
为啥我无法在 Azure 门户中访问我的 AAD 应用注册,但我可以使用 Azure CLI 查看它?
将 Azure Function 从门户导入 Visual Studio
Azure 函数从门户或 Visual Studio-Blob 触发器执行