gpt4 book ai didi

c# - 无法使用其他语言的其他客户端连接到 WCF-XMLRPC-Server

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:38 26 4
gpt4 key购买 nike

我使用 Vaster Clemens 教程创建了一个示例 xmlrpc C# 服务器客户端

http://vasters.com/clemensv/PermaLink,guid,679ca50b-c907-4831-81c4-369ef7b85839.aspx

我能够成功地将我的 C# 服务器连接到 C# 客户端,但是每当我尝试使用 Java 客户端连接到 C# 服务器时,我只会收到此错误:

HTTP server returned unexpected status: Internal Server Error

这是公开的 C# 服务器 API:

[ServiceContract]
public interface ITestAPI {

[OperationContract(Action = "test.returnSum")]
int returnSum(
int a,
int b);
<小时/>

这是服务器部分:

Uri baseAddress = new UriBuilder(Uri.UriSchemeHttp, Environment.MachineName, 8080,     "/testDemo/").Uri;
ServiceHost serviceHost = new ServiceHost(typeof(TestAPI));
var epXmlRpc = serviceHost.AddServiceEndpoint(typeof(ITestAPI), new WebHttpBinding(WebHttpSecurityMode.None), new Uri(baseAddress, "./test"));
epXmlRpc.Behaviors.Add(new XmlRpcEndpointBehavior());

serviceHost.Open();
Console.ReadLine();
serviceHost.Close();
<小时/>

C# 客户端位于此处:

Uri blogAddress = new UriBuilder(Uri.UriSchemeHttp, Environment.MachineName, PORT_NUMBER, pathValue).Uri;

ChannelFactory<ITestAPI> testAPIFactory = new ChannelFactory<ITestAPI>(new WebHttpBinding(WebHttpSecurityMode.None), new EndpointAddress(blogAddress));
testAPIFactory.Endpoint.Behaviors.Add(new XmlRpcEndpointBehavior());

testAPI = testAPIFactory.CreateChannel();
testAPI.returnSum(1,2);
<小时/>

此后,我尝试实现此处给出的示例 Java XML-RPC 客户端,并尝试将其连接到正在运行的 C# 服务器

http://www.tutorialspoint.com/xml-rpc/xml_rpc_examples.htm

public class JavaClient {
public static void main (String [] args) {
try {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://localhost:8080/testDemo/test"));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);

Vector params = new Vector();
params.addElement( new Integer(5) );
params.addElement( new Integer(5) );
Integer result = (Integer)client.execute( "returnSum", params );
if ( result != null )
System.out.println( "result" + result);

} catch (XmlRpcException exception) {
System.err.println("JavaClient: XML−RPC Fault #" +
Integer.toString(exception.code) + ": " +
exception.toString());
} catch (Exception exception) {
System.err.println("JavaClient: " + exception.toString());
}
}
}

没有任何作用。

Any kind of help would be much appreciated.

最佳答案

我能够解决这个问题了:API 应该这样调用:client.execute( "test.returnSum", params );来自您的客户。即您在运营契约(Contract)中提到的相同字符串。

关于c# - 无法使用其他语言的其他客户端连接到 WCF-XMLRPC-Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20294616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com