Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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
如何让Rails应用程序与封装了一些C#逻辑的web服务通信?_C#_Ruby On Rails_Web Services - Fatal编程技术网

如何让Rails应用程序与封装了一些C#逻辑的web服务通信?

如何让Rails应用程序与封装了一些C#逻辑的web服务通信?,c#,ruby-on-rails,web-services,C#,Ruby On Rails,Web Services,这更像是一个技术堆栈问题 C#逻辑是预先存在的/遗留的,在内部是一个多机器/分布式应用程序。 我需要实现一个概览web界面。所以我一直在考虑用RubyonRails做一个原型 现在我的知识在这里已经有一两天了。。。如果我错了,请纠正我。 过去有一种叫做ActionWebServices(AWS)的东西,现在已经脱离了核心发行版。ActiveResource已经在Rails 2.0中占据了一席之地。您仍然可以通过执行gem安装获得AWS。。。(但找不到AWS教程) 所以看看ActiveResour

这更像是一个技术堆栈问题

C#逻辑是预先存在的/遗留的,在内部是一个多机器/分布式应用程序。 我需要实现一个概览web界面。所以我一直在考虑用RubyonRails做一个原型

现在我的知识在这里已经有一两天了。。。如果我错了,请纠正我。 过去有一种叫做ActionWebServices(AWS)的东西,现在已经脱离了核心发行版。ActiveResource已经在Rails 2.0中占据了一席之地。您仍然可以通过执行gem安装获得AWS。。。(但找不到AWS教程)

所以看看ActiveResource(Ares):现在Ares固执己见。。它期望目标web服务是Restful的,遵循特定的URL模式,并接受XML作为输入

现在我的问题是如何实现包装器web服务

  • 如果我也使用Rails来做web服务。。我想我会遇到一些Ruby-C互操作问题(有可能吗?我可以通过MS impl IronRuby做到这一点吗?)
  • 如果我使用MS特定的东西(例如ASP.Net)来提供web服务,Ares将不会与之交谈。你能通过ASP.Net满足Ares约束吗

请原谅我对网络世界的无知。。谢谢你的阅读。

嗯。。。Webservice处理通过html操作(put、post、get、delete)接收数据的方法

所以rails/c#不应该有问题

如果您的c#webservice没有提供restful接口,您可以手动创建xml文件并通过rubys http类发布:

f、 e:

postdata=“asdasd”
response=http.post('http://c-sharp-website.com/getdata,postdata)
如果您想将webservice创建为rubyonrails应用程序,您必须提供进一步的信息,例如,如果您想从rails应用程序访问c#类

编辑:

您可以将c#库与iron ruby一起使用:
也许不是正确的答案。。但我选择了阻力最小的道路并成功了。耶,鲁比

首先,我创建了一个虚拟的Asp.net Xml Web服务,如中所示。减少了与我的C#代码交谈的麻烦。
接下来我找到了,从那以后一切都是下坡路

您可以编写一个像这样的小包装器Ruby类,它从您为其种子设定的参数中获取WSDL。它扫描WSDL,然后您可以作为简单的实例方法调用web方法。耶,鲁比


更详细的信息,以防你被激怒,答案不能只是“抛弃ASP.Net的RoR”,没有理由-我正在评估RoR的可行性是的,Web服务将不得不调用一些C#方法。。。我正在调查您提供的链接/路径。谢谢
postdata = "<xml version=1.0><root><data1 value=1>asdasd</data></root></xml>"

response = http.post('http://c-sharp-website.com/getdata', postdata)