问题标签 [self-host-webapi]

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 回答
3088 浏览

c# - 自托管 Web API

我的程序用于在 Windows 应用程序中自托管 Web API。由于我在网络服务方面没有太多经验,我请求有人帮助解决问题。

我可以成功制作控制台应用程序。但是当我将其更改为 Windows 应用程序时,我的 IDE 卡住了错误“应用程序处于中断模式”。

控制台程序;

主功能:

API 控制器类;我需要从“FromBody”属性接收数据。

0 投票
1 回答
861 浏览

c# - 运行WebApi项目的OWIN SelfHost项目不调用Application_Start方法

我在 Visual Studio 2019 中有一个包含两个项目的解决方案:

  1. 一个C# 类库(一个 WebAPI 项目)
  2. 一个C#控制台应用程序(一个OWIN SelfHost项目,参考项目1)

SelfHost 项目的唯一目的是 WebAPI可以在没有 Visual Studio的情况下运行。

当我在 Visual Studio 中运行WebAPI项目时,一切正常。提供静态内容,我可以通过浏览器调用它的 ApiControllers。

当我运行SelfHost项目时,浏览器无法调用/访问 ApiControllers。这可能是因为Global.asax中的以下代码没有被执行。不调用Application_Start方法:

因此,不执行将控制器链接到 URI 的机制:

所以症状可以解释,但如何解决?我尝试通过从 SelfHost 项目手动调用 GlobalConfiguration.Configure 方法来解决此问题,但随后出现以下错误:

'在应用程序的预启动初始化阶段不能调用此方法。'

任何帮助表示赞赏。

0 投票
1 回答
138 浏览

c# - C#:应用程序以管理员身份运行时未托管 Html 文件

我有一个由 Winform C# 构建的应用程序。在我的应用程序中有自托管 html 文件和 Web API 的代码,但自托管 Web API 需要管理员权限。因此,我在我的应用程序上以管理员身份运行,同时在浏览器中访问 html 页面。未加载 html 页面,我在浏览器中只收到一条错误消息。

我不明白为什么以管理员身份运行时没有加载它

这里代码到 selfhost html 文件和 web api

当我的应用程序在没有管理员的情况下运行时出现图像错误消息

编辑1:

我找到了另一种自托管 Web API 的方法。正在使用 webapp.start 方法。与 selfhost 的 html 文件相同。但是当我尝试开始时。我有冲突前缀

我按照本教程https://docs.microsoft.com/en-us/aspnet/web-api/overview/hosting-aspnet-web-api/use-owin-to-self-host-web-api

和这里的代码开始

所以问题是如何以相同的方法使其自托管(webApp.Start)

编辑2:

我尝试以不同的端口和相同的方法启动 html 文件和 Web API。现在工作没有冲突。

但它可以在相同的 ip 和端口中运行而不会发生冲突吗?

因为在 Jquery 中使用 Ajax 请求 Web API 时出现 CORS 错误

0 投票
1 回答
190 浏览

azure-active-directory - 如何在 OpenIdConnectConfigurationRetriever.GetAsync 调用中使用公司代理?

我对 Microsoft 和 Azure 的所有事物都很陌生,甚至不确定我是否为问题选择了正确的标签。

在 Azure 服务源代码(我从同事那里继承)中,以下代码失败并显示“找不到主机”,因为请求没有通过公司 Web 代理(当我在家庭网络中运行代码时,调用成功):

如果我通过调用创建一个 WebProxy 对象:

那我怎么能把它传递给OpenIdConnectConfigurationRetriever呢?

我应该改用另一种.GetAsync方法吗?

或者我应该使用一个BackchannelHttpHandler(不确定它是什么,在我的搜索过程中出现)

0 投票
3 回答
15556 浏览

c# - 如何更改 asp.net Core 3 或 Net Core 5 中的默认端口

当我在调试时,要更改默认端口,我修改了 launchSettings.json 文件,并更改了端口

但是如果我在文件夹(selfHost)中发布应用程序并启动可执行文件,它总是监听端口 5000 有人知道如何更改生产中的默认端口。我尝试使用UseUrls在 program.cs 中更改它但不工作

0 投票
0 回答
164 浏览

c# - 在 Linux 上运行 ASP.NET webapi selfhost

我在 Windows 上创建了一个 ASP.NET web api,它以 XML 形式返回一些测试数据。我已经安装了 Nuget 包 Microsoft ASP.NET Web Api Self Host,并且在 web api 中我配置了一个端口为 1234 的 Selfhost。我使用了以下文档:

https://docs.microsoft.com/de-de/aspnet/web-api/overview/older-versions/self-host-a-web-api

我以管理员身份运行 Visual Studio,还运行了 web api。在浏览器中,我输入了localhost:1234/api/product/1。有用。

我正在尝试在 Linux 上运行它。整个解决方案被复制到 Linux 并使用 MonoDevelop 执行。启动 web api 并在浏览器中输入localhost:1234/api/product/1时,没有返回任何数据。它无限加载。

这是控制器的代码:

下面是 WebApiConfig 类的代码:

我如何设法在 Linux 上运行 web api?

0 投票
0 回答
343 浏览

c# - 如何将集成的 Windows 身份验证添加到自托管的 Asp.net Web api?

是否可以在自托管 Web api 中支持集成 Windows 身份验证 (Kerberos),或者如果需要集成窗口身份验证,IIS 是否是绝对要求?

谷歌搜索我没有找到这个问题的明确答案或任何演示如何实现这一点的示例代码。

我正在尝试构建客户端可以使用 Windows 身份验证进行身份验证的自托管 Web api(无需输入用户名密码)

0 投票
0 回答
56 浏览

c# - C# SelfHost 如何限制所有外部请求?

我有一个作为后台服务的程序。它托管自托管服务。但是有一个问题。当我托管此服务时,它可用于所有区域设置网络。而且,同一网络中的每个人都可以访问此 API。这是我托管服务的方式:

首先我用 netsh 注册 url

然后我托管服务

ExtendHttpSelfHostConfiguration的结构是:

它完全适用于本地机器。
但是当我扫描网络时,nmap 可以检测到这个端口。

在此处输入图像描述

问题是如何让它只在计算机上工作。其他人不应访问此端口。据我了解,这样做应该是 127.0.0.1而不是0.0.0.0

我怎么解决这个问题?

我的 PC 中的其他服务是如何工作的?
在此处输入图像描述

0 投票
1 回答
137 浏览

c# - C# - 每次重新颁发 SSL 证书时,都需要更改应用程序中的序列号

我正在使用以下代码在 C# Web API 中配置 SSL 证书。问题是我使用序列号查找 SSL 证书,每次 Infra 重新颁发 SSL 证书时,我都必须更新应用程序配置中的证书序列号。重新颁发后是否有任何证书属性保持不变?

'sslCertificateSerialNumber' 来自配置文件

0 投票
1 回答
75 浏览

c# - .NET Framework 4.0 替代 Microsoft.AspNet.WebApi.OwinSelfHost

我有一个在 .NET Framework 4.0 上运行的旧 Windows 应用程序,现在需要自托管 Web 服务以响应 Web API 调用。为此,我尝试设置 OwinSelfHost 库,但是当我尝试通过 Nuget 安装时,出现以下错误:

我尝试安装旧库 Microsoft.AspNet.WebApi.Selfhost,但我也遇到了同样的问题。有没有我可以使用的替代库?

寻找一个短期解决方案,我知道更新框架将是一个更好的长期解决方案,但是在这个周期中,开发、部署、测试等的范围是不可管理的。