使用C#和PERL的SOAP服务器

使用C#和PERL的SOAP服务器,c#,.net,windows,perl,C#,.net,Windows,Perl,我有一个使用Perl的功能性SOAP服务器和一个C#客户端: SOAP服务器(Perl): 客户: 在C#client中,我在SOAP的帮助下调用“Queryserver”类和“Queryserver”方法,尽管我希望能够通过C#client调用其他类中的其他方法,但如何在PERL SOAP服务器中包含额外的“dispatch#u to('Queryserver::Queryserver') 例如 使用SOAP::Lite+trace; 使用SOAP::Transport::HTTP; 我的$d

我有一个使用Perl的功能性SOAP服务器和一个C#客户端:

SOAP服务器(Perl):

客户:

在C#client中,我在SOAP的帮助下调用“Queryserver”类和“Queryserver”方法,尽管我希望能够通过C#client调用其他类中的其他方法,但如何在PERL SOAP服务器中包含额外的“dispatch#u to('Queryserver::Queryserver')

例如

使用SOAP::Lite+trace;
使用SOAP::Transport::HTTP;
我的$daemon=SOAP::Transport::HTTP::daemon
->新的(LocalAddr=>123.123.123',LocalPort=>8001,listen=>5);
$daemon->dispatch_to('Queryserver::Queryserver');
**发送到(':')**
打印“通过“,$daemon->url,”\n“与SOAP服务器联系”;
$daemon->handle();

您没有阅读文档。拿一张单子

dispatch_to(
    'Queryserver::queryserver',
    'OtherClass::other_method',
);

您可能只想定义一个类,并让它的所有公共方法都可用于分派,而不是手动枚举大量完全限定的方法名。

看来您找到了一种在C#和Perl@L.B haha:p之间进行通信的方法,这远不可靠,但这是目前为止我发现的最好的方法,现在看看RabbitMQ
 public class Client : SoapHttpClientProtocol
    {

        public Client()
        {
            this.Url = "http://123.123.123.123:8001/QUERYSERVER";
        }

        [SoapDocumentMethod("urn:Queryserver#queryserver", RequestNamespace = "urn:Queryserver", ResponseNamespace = "urn:Queryserver", ResponseElementName = "queryserverResponse")]
        [return: System.Xml.Serialization.XmlElementAttribute("result")]
        public virtual string queryserver()
        {
            System.Object[] results = this.Invoke("queryserver", new object[0]);
            return ((string)(results[0].ToString()));
        }
    }

    class QueryServer
    {

        // this public string stores the cpuworld soap function, so the CPUObject can access it.

        public string resultQueryserverLoad;

        public void queryserver()
        {

            //bug fix below
            ServicePointManager.Expect100Continue = false;
            // end bugfix

            Client queryserverClient = new Client();

            string result;
            try
            {
                result = queryserverClient.queryserver();
            }
            catch (Exception exception)
            {

                result = exception.Message;
            }

            resultQueryserverLoad = result;
            //Console.WriteLine(result);
            //Console.ReadLine();

        }
    }
use SOAP::Lite +trace;
use SOAP::Transport::HTTP;
my $daemon = SOAP::Transport::HTTP::Daemon
  -> new (LocalAddr => '123.123.123.123', LocalPort => 8001, listen => 5);
$daemon -> dispatch_to('Queryserver::queryserver');
           **dispatch_to('<other class>::<other method>');**
print "Contact SOAP server at ", $daemon->url, "\n";
$daemon->handle();
dispatch_to(
    'Queryserver::queryserver',
    'OtherClass::other_method',
);