Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中HttpListener和Griffin.WebServer的替代方案#_C#_Rest_Soap_Webserver_Ipc - Fatal编程技术网

C# C中HttpListener和Griffin.WebServer的替代方案#

C# C中HttpListener和Griffin.WebServer的替代方案#,c#,rest,soap,webserver,ipc,C#,Rest,Soap,Webserver,Ipc,简而言之,我正在寻找在.Net Framework应用程序(例如windows窗体)中提供REST或SOAP API服务器的最佳方法-在某些情况下不具有管理员权限 在可能的可移植csharp应用程序中提供基于web的REST或SOAP API的最佳方式是什么? 基本上,我需要一些现成的支持基本http标准的东西(例如Expect:100 continue和其他),同时能够直接实例化我的csharp程序的类(性能和易用性原因) 微软的方法是要么使用IIS,可能还有ASP,要么使用httpliste

简而言之,我正在寻找在.Net Framework应用程序(例如windows窗体)中提供REST或SOAP API服务器的最佳方法-在某些情况下不具有管理员权限

在可能的可移植csharp应用程序中提供基于web的REST或SOAP API的最佳方式是什么? 基本上,我需要一些现成的支持基本http标准的东西(例如Expect:100 continue和其他),同时能够直接实例化我的csharp程序的类(性能和易用性原因)

微软的方法是要么使用IIS,可能还有ASP,要么使用httplistener。IIS永远不能以可移植的方式运行,需要大量基于安装过程/系统管理的工作。另一方面,httlistener甚至还不接近web服务器,我需要自己实现所有标准的web服务器命令

多年来我一直在寻找这个话题,一个例子就是这个问题[老问题]

不幸的是,这一个链接到一个中断的项目

有什么想法吗

[编辑]该问题不仅针对C#,而且针对.NET Framework 2-4.5。结果应可用于例如Windows窗体、Windows服务和命令行应用程序


目前,我使用的是基于HTTPListener的框架Web服务器,因此我需要自己实现请求的所有解析、答案的格式化以及对特殊http命令的响应(这似乎是一项永无止境的任务):

您应该能够使用它来做您想做的事情。使用独立于IIS的自托管API,您可以相当轻松地构建一个自托管API。教程应该很容易找到,这是微软的一个例子。

正如ilikesleeping建议您可以使用dotnet core,但将其作为一项服务使用会有一些复杂的问题

我建议您使用Microsoft OWIN framework。这确实是构建restful应用程序的简单而直接的方法。它可以作为控制台或服务正常工作,当然,在Console mkode中,您可以根据需要显示表单

以下是一些可以启动的链接: | | |

编辑:
…这里的主题是关于如何拥有一个通过OWIN承载SOAP端点的中间件:

我是这个问题的作者。只是想让未来的读者明白我在这里学到的东西:

这个问题最有趣的是它是一个“购物”问题。公认的答案不能基于事实,而只能基于主观感受。大多数建议的方法都符合所描述的用例

这就是为什么一些用户不想写答案,而是把他们的建议放在评论中的原因。奇怪,但这就是它的工作原理。我们更喜欢科学正确的答案

顺便说一下,这是我的第一个“悬赏”问题。我是一个活跃的用户,大约从3周开始。(像大多数人一样,多年被动)

你可以试试。我使用它将web服务器嵌入到应用程序中,以承载简单的web界面、文件托管,并为我的应用程序提供RESTAPI


与embedio项目(非常优秀)相比,我最大的优势在于它不需要管理员权限即可运行。不过看起来没有现成的SOAP集成。

谢谢!我查阅了.NETCore,但我不确定它是否可以与.NETFramework相结合。我需要一个好的旧的.net框架的解决方案。这是一个购物问题,用谷歌搜索点击率。“.net嵌入式web服务器”显示Nancy、NHttp、Kayak、Embeddeio。Node.js是一只大狗,所以你也需要谷歌“Node.js.net集成”。Out pops edge.js确保在悬赏结束前将其作为答案;-)休息和肥皂是完全不同的动物。剩下的是。。。几乎没有什么比HttpListener更足够了。完整的SOAP(和WSDL)是复杂的,有点过时。因此,这两个要求在某种程度上是矛盾的。HttpListener不需要管理员权限,仅当您的操作公开了您的计算机时。例如,您是想将服务器对外开放,还是只针对localhost()?如果您想要超过localhost,则需要打开防火墙anyway@Simon谢谢你的关注。目前,我使用HttpListener和一个非常简单的RESTAPI驾驶,随时随地都会发现问题。一些消息被清空,一些http客户端发送奇怪的http标准消息,如expect continue等。使用apache这样的标准Web服务器,所有这些都不会发生。不幸的是,没有办法将.net应用程序与apache本机结合起来。那么关于soap或rest:它是一个or,我将在我的问题中更正它。@Hans Passant我真的希望你的评论作为答案。你教我购物的问题,这个问题可能太晚了,但下次我会做得更好。我想一份需求清单是一个好的开始。我喜欢你的node.js集成,这可能是我的解决方案。其他的我都试过了。