我目前正在尝试将公司A拥有的Azure DevOps下的发布管道中的应用程序部署到公司B拥有的Azure上托管的Azure应用程序中.
尝试释放停止Azure应用程序时继续收到此错误:
错误:无法获取资源类型"Microsoft.Web/Sites"和资源名称"AppName"的资源ID.错误:无法获取托管服务主体的访问令牌.请为虚拟机" https://aka.ms/azure-msi-docs " 配置托管服务标识(MSI).状态码:400,状态消息:错误请求
我不知道如何解决这个问题.
到目前为止做了什么:
我很确定需要更多才能使发布部署工作,但经过深入搜索后,我无法找到任何内容.
希望这里有人可以提供建议.
azure azure-web-app-service azure-devops azure-pipelines-release-pipeline
我有一个预先存在的ASP.NET Core 3.0应用程序,它已成功部署到Azure 应用服务(使用AspNetCoreModuleV2模块)。将应用程序升级到(今天的版本)ASP.NET Core 3.1 后,应用程序在我的本地版本IIS Express上构建并正确运行。但是,当我尝试使用(今天发布的)Visual Studio 16.4发布到 Azure 应用服务时,我收到以下错误:
资产文件“C:\Project\obj\project.assets.json”没有“.NETCoreApp,Version=v3.0”的目标。确保恢复已运行并且您已在项目的 TargetFrameworks 中包含“netcoreapp3.0”。
<PackageReference>到Microsoft.AspNetCore, Microsoft.EntityFrameworkCore, 并且Microsoft.Extensions已更新为3.1.0obj文件夹以确保没有任何遗留的引用。3.1.100的版本Microsoft.PackageDependencyResolution.targets。我知道有些东西仍然挂在.NET Core 3.0依赖项上。但目前还不清楚为什么这只会在部署过程中引起问题。是Azure的应用程序Service的还没有准备好.NET 3.1的核心?或者这是依赖解析目标的问题?
visual-studio webdeploy azure-web-app-service asp.net-core asp.net-core-3.1
我有一个 Blazor 应用程序,我将它部署到 Azure 以进行一些 alpha 测试。我设法做到了这一点,并且可以很好地从网站上运行该应用程序。
当我对客户端和服务器项目进行更改并重新发布它们时,问题就出现了。无论浏览器在运行什么,客户端都将运行浏览器缓存中已有的内容,直到浏览器历史记录被清除。这意味着在清除历史记录之前,应用程序似乎已损坏,因为旧版本上的客户端请求与新服务器 API 不匹配 - 更不用说我的客户端更改没有得到测试。
发布更改时如何强制重新加载客户端?我是否必须告诉浏览器不要缓存我的应用程序(不确定如何在 blazor 上)并在我的应用程序稳定之前降低性能?或者有没有办法在第一次 API 调用后使用一些中间件或其他东西强制客户端重新加载?
或者我错过了什么?
编辑:我使用了 Blazor WebAssembly 3.2.0 Preview 2 中提供的 PWA 模板可能是相关的。我仍在从浏览器运行该应用程序,但启用 PWA 选项似乎可能改变了应用程序的行为,即使在将其作为常规网站运行。
我在 S1 应用服务上有一个非常简单的 asp.net core 托管 blazor wasm 应用程序,有 2 个插槽:集成和生产。当我刚刚发布到我的集成槽时,大约需要 50 秒。但当我将集成与生产插槽交换时,需要 7 分钟以上。这两个应用程序的插槽在此之后都非常慢,通常需要一分钟多的时间才能再次做出反应。在交换期间,两者根本没有响应。
只有 2 个设置和连接字符串需要更改。而且我没有任何手动预热。交换功能是否真的意味着在如此低的配置上使用,或者我可以调整配置中的某些内容以加快速度吗?
我正在尝试将异常记录到Application Insights.我通过TelemetryClient.TrackException直接打电话成功完成了这项工作.但是,我想在我的代码中抽象出来,以防我将来想要登录其他平台,所以我想只关注ILogger接口.
我发现你可以使用ILoggerFactory.AddApplicationInsights(在这里实现),但不管我做了什么,我都没有看到日志在ApplicationInsights中出现.
以下是我的代码:
Startup.cs
IConfigurationRoot Configuration { get; set; }
ILoggerFactory LoggerFactory { get; set; }
IServiceProvider ServiceProvider { get; set; }
public Startup( IHostingEnvironment hostingEnvironment, ILoggerFactory loggerFactory )
{
this.LoggerFactory = loggerFactory;
string configurationFilePath = "abc.json";
this.Configuration = new ConfigurationBuilder()
.SetBasePath( hostingEnvironment.ContentRootPath )
.AddJsonFile( configurationFilePath, optional: true, reloadOnChange: true )
.AddEnvironmentVariables()
.Build();
}
public void Configure(
IApplicationBuilder applicationBuilder,
IHostingEnvironment hostingEnvironment,
ILoggerFactory loggerFactory,
IServiceProvider serviceProvider )
{
this.ServiceProvider = serviceProvider;
loggerFactory.AddApplicationInsights( serviceProvider ); …Run Code Online (Sandbox Code Playgroud) c# logging azure-application-insights azure-web-app-service asp.net-core
一般来说,我会在本地机器上启动docker实例 docker run -t -i -e 'a=b' ...
现在,我想部署并运行我之前上传到Docker Container Registry的自定义docker镜像,并像上面的命令一样启动它 - 使用环境变量.
检查Azure CLI for WebApps,您可以看到通常应该可以设置环境变量.但对我来说,似乎这个"环境变量"不是传递给docker命令的环境变量.为什么?检查容器协议我可以看到docker容器是如何启动的.没有设置环境变量.
使用Azure容器,它会像这样工作az container create ... --environment-variables a=b.这些环境变量传递给容器/ docker.这正是我在寻找WebApps的原因.
有没有人在使用环境变量启动的客户Docker实例部署Azure Webapps方面有一些经验?
我正在尝试将我的 Web 应用程序部署到 Microsoft Azure,并且在 Visual Studio 中一切正常。但是当它启动时显示:
嘿,应用服务开发人员!
您的应用服务已启动并正在运行。
是时候进行下一步并部署您的代码了。
如何显示我的网页而不是这个页面?
这是我在 Visual Studio 中得到的输出。
------ Publish started: Project: RCMania, Configuration: Debug Any CPU ------
Transformed Web.config using C:\DDAC\Assignment\RCMania\RCMania\Web.Debug.config into C:\Users\Admin\AppData\Local\Temp\WebSitePublish\RCMania-1747672403\obj\Debug\TransformWebConfig\transformed\Web.config.
Auto ConnectionString Transformed C:\Users\Admin\AppData\Local\Temp\WebSitePublish\RCMania-1747672403\obj\Debug\TransformWebConfig\transformed\Web.config into C:\Users\Admin\AppData\Local\Temp\WebSitePublish\RCMania-1747672403\obj\Debug\CSAutoParameterize\transformed\Web.config.
Copying all files to temporary location below for package/publish:
C:\Users\Admin\AppData\Local\Temp\WebSitePublish\RCMania-1747672403\obj\Debug\Package\PackageTmp.
Start Web Deploy Publish the Application/package to https://rcmania.scm.azurewebsites.net/msdeploy.axd?site=rcmania ...
Adding ACLs for path (rcmania)
Adding ACLs for path (rcmania)
Updating file (rcmania\Web.config).
Adding ACLs for path (rcmania)
Adding ACLs for path (rcmania) …Run Code Online (Sandbox Code Playgroud) 在 Azure 中将 .Net Core 2.2 Linux Web 应用程序升级到 .Net Core 3.1 后,应用程序因Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found错误而关闭。我什至用 .Net Core 3.1 创建了一个新的 Linux Web App,在 bash 命令提示符后仍然输出dotnet --list-runtimes为2.2.7.
网站关闭
日志流
报告应用程序已关闭,因为它找不到 .net core 3.1。
创建了新的 .net 核心 Web 应用程序
3.1 linux webapp in North Central,同样问题
确保它在美国中北部运行
根据https://aspnetcoreon.azurewebsites.net/,应该有完整的 .netCore 3.1 支持
opt/dotnet/runtimes 列出 3、3.0 和 3.0.0,但没有 3.1`

环境变量
我在 Azure 列表中的环境变量FRAMEWORK_VERSION = lts,而不是 …
当 Azure Active Directory 管理员是 AAD 组时,我的 Web 应用程序无法登录数据库服务器
我一直在我的 Azure Web Apps 上推出“新”托管身份功能,并取得了不同程度的成功。简而言之,我们希望能够通过 Active Directory 控制对 Azure SQL 服务器的访问。我们已在 Web 应用程序上启用托管身份:
我决定创建一个 AAD 组,添加所有 DBA 以及有权与该数据库服务器通信的 Azure Web 应用程序。然后,该 AAD 组将被分配为 Azure Active Directory 管理员。这是包含许多 DBA 和 Web 应用程序作为成员的 AAD 组:
设置数据库服务器的 Azure Active Directory 管理员:
此时,组内用户可以通过SSMS成功登录,而Web App则不能。"Login failed for user '<token-identified principal>'"我在 Web 应用程序日志中
收到错误。如果我直接将Web App设置为Azure Active Directory Admin,则可以成功登录。
我已通过 .scm 安装了 MSI 验证程序。(Kudu) 仪表板,并确认当组分配为管理员和 Web 应用程序直接分配为管理员时,Web 应用程序可以成功从数据库服务器检索令牌。(为了完整起见,我还尝试从它不应该访问的服务器访问令牌,并且无法按预期检索)
我还尝试过以下方法:
azure azure-active-directory azure-sql-database azure-web-app-service azure-managed-identity
我正在尝试在 Azure 的应用服务上部署一个 dockerized 应用程序。我正确输入了所有字段,我的图像被拉出,然后我不断收到此错误,直到出现超时。
Waiting for response to warmup request for container -<container name > Elapsed time = 154.673506 sec
Run Code Online (Sandbox Code Playgroud)
我确实设置了 WEBSITE_PORT 8080(由我的应用程序使用)
这是 dockerfile
FROM google/dart
WORKDIR /app
ADD pubspec.* /app/
RUN pub get --no-precompile
ADD . /app/
RUN pub get --offline --no-precompile
WORKDIR /app
EXPOSE 8080
ENTRYPOINT ["pub", "run", "aqueduct:aqueduct", "serve", "--port", "8080"]
Run Code Online (Sandbox Code Playgroud)
它工作正常。我昨晚让它工作了。我想刷新我的图像,所以我重新启动。没有任何效果。几个小时后,我删除了我的应用程序并重新开始......不走运。有任何想法吗?
编辑 1: 尝试将端口更改为 80,但不走运(这是我最初在正常工作时使用的端口)
已解决(部分)* 我将所有内容更改为 8000 端口。我意识到 Linux 和 Windows 不喜欢在 80 上进行非系统监听。因此,我更改了 8000 上的所有内容并在 Azure {WEBSITE_PORT, 8000} 上设置了系统属性。它现在似乎工作正常。我不知道这是否是官方修复...但它会在 30 秒后预热
azure ×6
asp.net-core ×2
docker ×2
.net-core ×1
acs ×1
asp.net ×1
azure-devops ×1
azure-pipelines-release-pipeline ×1
blazor ×1
c# ×1
containers ×1
logging ×1
webdeploy ×1