自托管Web API在IDE中运行,但不在IDE之外运行

时间:2013-02-27 14:47:48

标签: c# asp.net-web-api self-hosting

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

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

任何人都可以就我应该关注的内容提供一些建议吗?感谢名单!

1 个答案:

答案 0 :(得分:1)

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

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

使用它,您不必使用提升的权限运行该进程(再次,如果您想在本地访问它)。

2)另一种选择是为特定用户保留特定端口:

netsh http add urlacl url=http://+:999/ user=machine\username

这也允许您以管理员身份运行自己的主机,只要为已为其保留端口的用户启动进程。

3)最后,最后一个选项是以管理员身份运行它。