Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
.net WCF在node.js/Nginx堆栈中是如何工作的?_.net_Wcf - Fatal编程技术网

.net WCF在node.js/Nginx堆栈中是如何工作的?

.net WCF在node.js/Nginx堆栈中是如何工作的?,.net,wcf,.net,Wcf,我在创建“类似web服务的应用程序”方面的经验来自开源世界,例如,我将Nginx设置为接收对服务器的请求,然后将这些请求传递给应用服务器,即CouchDB前面的反向代理或node.js web服务器,或者将这些请求定向到服务器上包含html文件或PHP脚本等的位置 使用上述方法,很容易设置端点并逐个处理每个端点。例如,如果我想每5分钟处理一次从传感器到https://example.com/sendSensorData,我在端口9000上创建了一个node.js应用程序,通过Nginx/Cadd

我在创建“类似web服务的应用程序”方面的经验来自开源世界,例如,我将Nginx设置为接收对服务器的请求,然后将这些请求传递给应用服务器,即CouchDB前面的反向代理或node.js web服务器,或者将这些请求定向到服务器上包含html文件或PHP脚本等的位置

使用上述方法,很容易设置端点并逐个处理每个端点。例如,如果我想每5分钟处理一次从传感器到
https://example.com/sendSensorData
,我在端口9000上创建了一个node.js应用程序,通过Nginx/Caddy/Apache/etc将web请求传递给localhost:9000,然后编写node.js代码以查找带有
sendSensorData
路径的请求,然后编写代码以处理我希望到达该端点的数据。因为我将使用HTTP,所以我将使用node.js HTTP库来实际发出请求,这反过来处理OSI堆栈的细节,类似于.NET绑定(我认为)

我想我理解了WCF的观点(从长远来看,它更容易维护,开发更复杂的系统更快,而且可能还有安全方面的好处),但现在我正在努力理解WCF web服务实际上在做什么

从抽象的角度来看,有很多关于WCF是什么的信息,但是要找到关于细节的适当信息就不那么容易了

我发现有材料提到它用于创建API,可根据数据交换格式、网络协议和端点结构进行配置。i、 e.您可以在以下方面轻松地为单个服务配置多个端点:

  • 可以在其上联系您的服务的地址
  • 绑定-即OSI内容,如传输协议、编码、SSL等
  • 合同。。。数据格式(JSON/XML)、数据结构(类型)、网络响应?数据有效负载期望值等
我知道地址和绑定是在名为
App.Config
的XML文件中配置的。在我的具体案例中,这个文件包含在一个控制台应用程序中,它启动了长期存在的WCF进程(我认为)。在配置文件中,有4个
服务
块和一个
绑定
块。因此,我假设有四个服务都使用相同的绑定堆栈(我认为在.NET中通过配置定义OSI堆栈的细节非常酷,如果bindings指令允许的话)。每个服务都有自己的
行为
块(只是拼写错误为
行为

我现在正试图找出契约,它似乎涉及到用属性(类、属性等)进行装饰,并以这样一种方式包括项目引用,即允许.NET framework为您构建端点,而无需任何额外工作


这是正确的吗?或者,将我上面提到的简单node.js示例与类似的.NET WCF应用程序进行比较的更好方法是什么?

实际问题是什么?首先,OSI堆栈是不存在的——该模型在2000年之前用于描述网络,但在所有网络实际成为TCP后就被放弃了。这反映在2000年后坦南鲍姆的书中。WCF发布SOAP服务,即HTTP端点,就像任何其他web服务器一样。内容遵循SOAP、WS*标准,就像任何其他符合SOAP的堆栈一样。契约等是SOAP的一部分。此外,WCF实际上可以使用许多不同的机制发布端点——命名管道、MSMQ、HTTP等。我认为您可能正在寻找的是“WebAPI”,它比WCF简单得多,是为快速实现REST样式的HTTP Web服务而设计的。与您以前使用的更加紧密地结合起来。BTW node.js在HTTP服务方面与WCF基本相同-只是一个web服务器,与OSI无关。实现相同SOAP标准的不同方式。@PanagiotisKanavos,我真的怀疑所有网络都是TCP。。。但除此之外,当你说“SOAP标准”时,这与HTTP协议有什么关系?据我所知,SOAP是一种位于HTTP之上的协议——也就是说,如果您想使用一些使用HTTP的web服务,那么SOAP是构建信息结构的好方法。但似乎完全可以在没有SOAP的情况下使用HTTP。具体来说,node.js实现了什么SOAP标准?在我看来,符合REST的服务不必实现SOAP