问题标签 [webapi2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
289 浏览

c# - Autofac 从引用的和非引用的程序集中加载依赖项

我看到很多问题询问如何加载所有引用的程序集,即使不直接使用,但我想更进一步。我正在构建一个可以扩展的服务和接口,目的是我可以用其他类型扩展 Sender/Receiver,例如:接口负责发送 SMS 消息并且可以有不同的适配器,比如我有两个不同的应用程序想要使用 SMS 的人,每个人都有自己的ISmsAdapterand实现ISmsReplyAdapter,服务不一定会引用程序集(应用程序由 Windows 服务和用于接收回复的 WebAPI 服务组成)。

我希望能够做的不仅仅是注册我在引用程序集中的 autofac 模块,而且还在程序集中注册模块,这些模块在特定文件夹中,例如 /bin/plugins 或类似的东西

我找不到任何与此相关的东西,除了Caliburn.Micro它有一个DirectoryCatalog与我想要的类似的东西

请问有谁知道我如何能够使用 Autofac 实现这一目标?

0 投票
0 回答
5634 浏览

c# - web api 2 asp.net核心中的可选参数不起作用

我有如下功能

生成的 api 调用是这样的

api/case/GetAll/value1 或 api/case/GetAll//value2 或 或 api/case/GetAll///value3

哪个值从前端传递到这个特定的 api 方法,该值将传递给 parameter1。

我搜索了 SO 并尝试遵循Web Api 属性路由中的可选参数,但找不到解决方案。

我的项目是 Angular 2 前端 + webapi2,将 asp.net 核心作为服务层。

你能否让我知道如何让 webapi2 理解我的可选参数

0 投票
1 回答
89 浏览

c# - 如何限制从同一网站使用的服务

我是 azure 新手,我正在尝试设置一个单页网站(web api 2)。如何限制对我的服务的访问,以便只有我的网站可以使用它?

我知道我可以使用应用程序服务来设置我的网络应用程序/服务,但据我所知,它将对所有人开放。

我还阅读了有关 API 的信息,但对于这样一个简单的任务,API 管理服务似乎非常昂贵且先进。有什么选择吗?我在错误的轨道上吗?


更新

好的,我看到了基于 IP 过滤的链接。但正如我所提到的,单页应用程序也托管在 Azure 上。没有静态IP。如果是这样,我仍然需要知道您将如何了解 IPRange。

0 投票
1 回答
601 浏览

c# - 具有基于属性的路由的自定义消息处理程序不适用于 Web API 2

我的 Web API 2 项目中有一个消息处理程序,它将 url 更改为不同的路径。比如 url"root/controller/somevalue/detials"会改成"root/controller/2/details". 其中“somevalue”或 2 是操作方法的参数。

我在调用消息处理程序之前放置了消息处理程序注册码, config.MapHttpAttributeRoutes(); 注册为 config.MessageHandlers.Add(new MyHandler());

对于正常的路线映射,它工作正常。但是,如果我启用基于属性的路由,则会调用消息处理程序并更改 url,但操作方法会被相同的“somevalue”而不是“2”命中。

这里发生了什么?

0 投票
1 回答
1484 浏览

c# - IHttpActionResult.ExecuteAsync() 重载返回的任务未运行

我正在尝试创建一个自托管的 Web 服务,该服务启动它的服务器Microsoft.Owin.Hosting.WebApp.Start<NotifyStartup>("http://localhost:9000/")并包含一个从System.Net.Http.ApiController. NotifyStartup看起来像这样:

控制器有这个 URI 处理程序:

这是HttpAction:

(在某些时候HttpAction会注意Notify()'sbody参数,并 rspContent会分配一些需要一些数据库查找的东西,这就是为什么我试图使这项工作异步进行。)

当我运行程序并 POST 到http://localhost:9000/notify/时,会调用 URI 处理程序,它会创建一个HttpAction实例并ExecuteAsync()调用该实例的方法。但是,它返回的任务永远不会运行,客户端挂起等待响应。如果我更改ExecuteAsync()以便同步完成工作并在包装器任务中返回响应:

该包装器任务运行并且客户端收到它的响应。

据我所知,由调用者创建的任务看起来应该new Task<>...Task.FromResult()调用者相同。为什么它await(或它实际为获得结果所做的任何事情)是一个而不是另一个?我究竟做错了什么?有可能完成这项工作吗?

0 投票
1 回答
2190 浏览

macos - Visual Studio for Mac 2017 RC 上的 ASP.NET Web API 2

我是 Mac 新手,正在尝试使用 Visual Studio 2017 for Mac 构建 Web API2。我看不到 Web API 2 包(缺少控制器选项,我能够创建 MVC 项目,但即使我选择了 Empty Web Application -> Web API only)

我没有看到 API 控制器和所有 Web API 2 选项。有没有办法找到和使用这些?

0 投票
1 回答
1284 浏览

c# - 创建我自己的外部身份验证服务

我正在尝试找到有关创建您自己的范围身份验证服务的完整教程。与您看到的“使用 Google 登录”或 Facebook 或 Twitter 类似……我如何创建自己的版本?包括允许创建“应用程序”,创建他们的应用程序密钥和秘密。

也许我在寻找时正在寻找错误的术语,我不确定。

我需要一个中央登录服务,如果他们有足够的权限,应用程序将能够登录用户并接收他们的信息。

如果有帮助,我正在使用 c# 和 web api 2。

谢谢

0 投票
2 回答
4276 浏览

angular - TypeError:无法使用 Angular 2 读取未定义的属性“用户名”

我想在我的 Angular 2 应用程序中显示当前用户的用户名。后端使用 .net core web api 开发。

我写了这段代码,但在控制台中获得了这个错误:

TypeError:无法读取未定义的属性“用户名”

类 AuthService

我确定用户已登录,因为我可以读取他的令牌。

网页api方法

打字稿中的类用户

角度 2 中的组件代码

代码模板html

我不明白为什么这不起作用。

0 投票
2 回答
1448 浏览

c# - 使用全局异常处理会搞砸 DelegatingHandler

oververide IExceptionHandler 时,发生意外异常时响应不会到达 DelegatingHandler。我怎样才能解决这个问题?

在 webapi 2 中,我想为请求和响应消息实现一个审计记录器。我还想添加一个全局异常处理程序。但是,当我用我的自定义实现替换 IExceptionHandler 时。响应永远不会到达 DelegatingHandler -on 异常 - 因此对响应的审计会丢失。

在 WebApiConfig 中

自定义异常处理程序

自定义审计记录器

webapi中抛出异常的代码

0 投票
1 回答
379 浏览

c# - 来自 CreateStoredProcedureAsync documentdb 的空响应

所以我调用了这个方法,它在微软为 documentdb 提供的示例代码中,但是在尝试创建新的存储过程时我得到了一个空响应。

这是 BulkImport.js 文件

在数据文件夹中,我有 100 个 json 文件,这些文件在示例本身中提供。请帮助我创建我正在使用 documentdb 模拟器的新程序。