标签: azure-api-apps

API App和Web App有什么区别?

我现在正在阅读一些关于将Web Apps和API应用程序部署到Azure的教程.但是,我仍然不确定为什么你会使用一个而不是另一个.

我可以使用API​​控制器创建一个新的.NET解决方案并将其部署为Web应用程序,那么为什么我要特别要求API应用程序?这些是专门针对ASP.NET Web API进行优化的吗?Web Apps用于提供HTML?

azure azure-web-sites azure-api-apps azure-web-app-service

85
推荐指数
3
解决办法
4万
查看次数

Azure自定义控制器/ API .Net后端

我在Azure上运行了一个MobileService,并决定创建一个新服务并自己迁移代码.新服务属于新类型:Azure Mobile App Service.

目前我有身份验证工作,可以进行迁移/更新数据库.我正在关注TodoItem示例.我现在想要创建自己的自定义API,它可以轻松地在MobileService上运行,但我无法在Azure Mobile App上运行它:/

我已经关注了这两个链接web-Api-routingapp-service-mobile-backend.我现在有以下内容:

我创建了一个新的控制器:

[MobileAppController]
public class TestController : ApiController
{
    // GET api/Test
    [Route("api/Test/completeAll")]
    [HttpPost]
    public async Task<ihttpactionresult> completeAll(string info)
    {
        return Ok(info + info + info);
    }
}
Run Code Online (Sandbox Code Playgroud)

在mobileApp.cs中,我根据后端添加了以下代码:

HttpConfiguration config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
Run Code Online (Sandbox Code Playgroud)

另外我根据web-api-routing安装了以下软件包:

Microsoft.AspNet.WebApi.WebHost 
Run Code Online (Sandbox Code Playgroud)

和来自客户的电话:

string t = await App.MobileService.InvokeApiAsync<string,string>("Test/completeAll", "hej");
Run Code Online (Sandbox Code Playgroud)

调试显示,它是正确的URL:

{方法:POST,RequestUri:' https ://xxxxxxx.azurewebsites.net/api/Test/completeAll',版本:1.1,内容:System.Net.Http.StringContent,标题:{X-ZUMO-FEATURES:AT X -ZUMO-INSTALLATION-ID:e9b359df-d15e-4119-a4ad-afe3031d8cd5 X-ZUMO-AUTH:xxxxxxxxxxx接受:application/json User-Agent:ZUMO/2.0 User-Agent:(lang = Managed; os = Windows Store; os_version = - ; arch = …

c# asp.net azure azure-mobile-services azure-api-apps

31
推荐指数
2
解决办法
7863
查看次数

如何在Azure App Service上部署Jetty?

我有一个我在Azure App Service实例上运行的Java Web应用程序.为了部署它,我使用了一个带有.war文件的Bitbucket repo.当我向该repo提交一个新的.war文件时,它应该由该服务自动部署.但是,通常情况下,我必须通过FTP重新启动,重新部署甚至上传.war文件,才能成功完成部署.

我有一个驻留在此服务中的Jetty实例,因此我的.war文件被命名ROOT.war.AFAIK,当上传到服务(无论是通过Bitbucket还是FTP)时,这个.war文件应该被解压缩到同一目录中,即/site/wwwroot/webapps.就我而言,这不会发生.Web应用程序可以独立使用ROOT.war文件/site/wwwroot/webapps.每隔一段时间,我会得到一个ROOT文件夹/site/wwwroot/webapps,有两个默认文件index.jspbackground.png.我没有任何想法导致ROOT文件夹与这些默认文件一起出现的原因.我唯一的线索是,在我更改环境变量后,它发生了几次.

此外,ROOT文件夹显示空服务器文件后,我可以重新部署应用程序的唯一方法是ROOT通过FTP或门户网站中提供的控制台手动删除此文件夹,然后我的重新部署请求成功使用我的Web应用程序.

那么,如果不够清楚,我的问题是这里发生了什么?我无法从我面临的行为中做出任何改变.我觉得我盲目地使用这个Azure服务,并且当出现问题时无法解决任何问题.是否有任何资源可以解释部署Web应用程序时后台发生的情况?

java deployment jetty azure azure-api-apps

17
推荐指数
1
解决办法
1072
查看次数

使用Swashbuckle创建时swagger.json的位置

当我构建并运行我的Azure Web API时,我得到了一个很好的swaggerUI.

我想将API添加到Azure API Management.

为此,我需要一个URL或swagger.json文件.

Swashbuckle把文件放在哪里?

或者,如果它在运行中生成它,我怎样才能访问它?

swagger swashbuckle azure-api-apps

9
推荐指数
1
解决办法
8984
查看次数

远程调试 - Web App Azure

我正在尝试远程调试使用Visual Studio 2017 Professional部署为Azure应用服务的Asp.Net核心Web应用程序(带有Web API)项目.

按照此处记录的说明进行操作.基本上,使用服务器资源管理器 - >应用程序服务 - >附加调试器

此外,启用了所述的必要防火墙端口.我打开的是TCP(4022,4023)和UDP(3702).此外,确保远程调试器应用程序位于Windows防火墙中允许的应用程序列表中.防火墙步骤的文档.

尽管有所有设置,但我收到了以下错误

System.Runtime.InteropServices.COMException(0x89710023):无法连接到名为"essamplepoc2.azurewebsites.net"的Microsoft Visual Studio远程调试器.Visual Studio 2017远程调试程序(MSVSMON.EXE)似乎没有在远程计算机上运行.这可能是因为防火墙阻止了与远程计算机的通信.有关配置远程调试的帮助,请参阅"帮助".Microsoft.VisualStudio.Web.Azure.MicrosoftWeb.Operations.RemoteDiagnosticsSessionBase.ConnectToServer(String)中的Microsoft.VisualStudio.Debugger.Interop.Internal.IDebuggerInternal120.ConnectToServer(String szServerName,VsDebugRemoteConnectOptions [] pConnectOptions,CONNECT_REASON ConnectReason,Int32 fIncrementUsageCount,IDebugCoreServer3&ppServer) site,String user,String password)

任何建议都会有所帮助.

remote-debugging azure-api-apps azure-web-app-service

9
推荐指数
2
解决办法
2052
查看次数

API管理URL提供Missing订阅密钥问题

我是API管理的新手.我创建了一个Basic WEB API并托管到API APP(App服务).URL正在按预期工作,它正在返回数据.即http://xyz.azurewebsites.net/api/webapi

但是当我在API管理中添加API应用程序时,我正在添加带有Extra后缀的不同URL我正在添加,但是当我尝试在浏览器中打开链接时 - > https://abc.azure-api.net/God我收到以下错误

{ "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }

如果它没有API APP的问题那么它不应该与API管理.如果我错过了什么,请指导我.

NB - >我尝试在fiddler中添加订阅密钥,它的不同问题即将到来.但要访问URL,它基本上不需要订阅密钥.

azure azure-api-management azure-api-apps

9
推荐指数
2
解决办法
5980
查看次数

无法解决 Azure 应用服务中的 (502) 错误网关错误

我们有一个应用服务计划 (P2v2: 1),部署了 6 个 .Net Core Web API 和 2 个 Web 作业。

最近,1 个 Web API 定期开始发出 (502) Bad Gateway 错误。该错误似乎会自行解决,或者我们需要重新启动应用服务。

我们看到的平均 CPU % 为 42.x %,平均内存 % 约为 32.x %

这真的让我们抓狂,因为我们没有看到任何应用程序错误。

我们急需提示来解决此问题,因为它正在生产中运行。

.net azure azure-api-apps azure-web-app-service

9
推荐指数
1
解决办法
2万
查看次数

Serilog与Azure中的API应用程序

我已将Serilog集成到使用Asp.Net Core 2.0开发的WebApi项目中.这是以下配置代码Program.cs:

Log.Logger = new LoggerConfiguration()
        .Enrich.FromLogContext()
        .WriteTo.Console()
        .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

我设法在调试期间完美地查看日志.
现在我在Azure中将服务部署为API应用程序.
应该使用什么配置来通过Azure Portal中的Log Stream扩展来查看生产环境中的日志?

c# azure asp.net-web-api serilog azure-api-apps

8
推荐指数
1
解决办法
4709
查看次数

部署在Azure Web App/Azure API上时缺少CORS标头

我创建了一个OWIN托管WebAPI 2.还有一个Web应用程序(AngularJS),它使用API​​并充当客户端.

我已经添加了必要的代码CORSStartup.cs,并主持它本地IIS比客户的不同端口上,并确认其修复Cors问题.

然后,我将这两个应用程序部署到Azure(我已将两个应用程序都放在Azure上作为Web应用程序,我也尝试将OWIN放到当前处于预览状态的Azure API中)但是 - 预检请求现在失败了(没有Access-Control-Allow-Origin出现在响应).

问:我不知道Azure的某些特定内容吗?为什么OWIN在部署时没有提供此标头,但是它正在使用localhost?我没有在应用程序的Azure刀片设置的属性窗口中看到任何约束.

笔记:

关于我正在使用的设置的一些细节:

  • 使用Owin,WebAPI2,Ninject,SignalR
  • 自定义令牌在每个后续请求的标头中发布和提供,并使用自定义过滤器进行验证.
  • 我现在正在尝试的是 *

Startup.cs的相关部分:

public void Configuration(IAppBuilder appBuilder)
{
    appBuilder.UseCors(CorsOptions.AllowAll);

    HttpConfiguration config = new HttpConfiguration();
    config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

    //bind IClientsNotifier with method returning singleton instance of hub
    var ninjectKernel = NinjectWebCommon.GetKernel();
    ninjectKernel.Bind<MySignalRHub>().ToSelf().InSingletonScope();
    ninjectKernel.Bind<QueryStringBearerAuthorizeAttribute>().ToSelf();

    GlobalHost.DependencyResolver = new NinjectSignalRDependencyResolver(ninjectKernel);
    appBuilder.Map(
        "/signalr", map =>
    {
        map.UseCors(CorsOptions.AllowAll);
        var hubConfiguration = new HubConfiguration();
        map.RunSignalR(hubConfiguration); …
Run Code Online (Sandbox Code Playgroud)

c# azure cors azure-web-sites azure-api-apps

7
推荐指数
2
解决办法
8335
查看次数

Azure功能和Azure应用程序网关或API管理

我开发了几个Microsoft Azure功能.我想使用带防火墙的网关来使我的Azure功能可用并仅使用一个公共IP进行保护.

有没有办法将Azure功能与Azure应用程序网关或API管理一起使用?

在这种情况下,最好的方法是什么?

azure azure-api-management azure-api-apps azure-functions

7
推荐指数
1
解决办法
4138
查看次数