self - hosted WebAPI在IDE中运行,但不能在IDE之外运行

本文关键字:运行 IDE 但不能 hosted self WebAPI | 更新日期: 2023-09-27 18:01:19

我有一个内置到控制台应用程序的自托管WebAPI。当我通过VisualStudio IDE运行它时,一切都很好。我有一个客户端应用程序,连接和交互与WebAPI应用程序就好。但是,如果我在IDE外运行我的WebAPI应用程序,只需双击EXE,我的客户端应用程序根本无法连接到它。我没有得到任何真正有用的错误信息,也有两个innerexception在客户端(在PostAsXmlAsync调用)。一个是"无法连接到远程服务器",第二个是"发送请求时发生错误"。

通常情况下,如果这是一个一致的错误,我会自己排除故障和调试。但这里的关键因素是,如果我通过VisualStudio IDE运行这一切,一切工作如预期。

谁能给我一些建议,我应该看看/为什么?谢谢!

self - hosted WebAPI在IDE中运行,但不能在IDE之外运行

1)如果您所做的只是在本地访问self主机,您可以设置以下配置选项:

config.HostNameComparisonMode = System.ServiceModel.HostNameComparisonMode.Exact;

这样,您就不必以更高的权限运行该进程(同样,如果您想在本地访问它)。

2)另一个选择是为特定的用户保留一个特定的端口:
netsh http add urlacl url=http://+:999/ user=machine'username

这也允许你运行self host而不是admin,只要这个进程是为一个端口被保留的用户启动的。