Silvelight アプリケーションから Console XML RPC サーバーと通信したいと考えています。可能ですか?
手順: 1. コンソール XML RPC サーバーを開始します。
コンソール XML RPC サーバーのコードは次のとおりです。
using System;
using System.Collections;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using CookComputing.XmlRpc;
public class StateNameServer : MarshalByRefObject, IStateName
{
public string GetStateName(int stateNumber)
{
return "whatever";
}
}
class _
{
static void Main(string[] args)
{
IDictionary props = new Hashtable();
props["name"] = "MyHttpChannel";
props["port"] = 5678;
HttpChannel channel = new HttpChannel(props,null,new XmlRpcServerFormatterSinkProvider());
ChannelServices.RegisterChannel(channel,false);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(StateNameServer),"statename.rem",WellKnownObjectMode.Singleton);
Console.WriteLine("Press <ENTER> to shutdown");
Console.ReadLine();
}
}
Silverlight アプリケーションの実行http://code.google.com/p/xmlrpc-silverlight/のコードを使用し ました。そのリンクのコードを添付した新しい Silverlight アプリケーションを作成しました。SL アプリを実行する Web サイト (ポート 1139 の localhost) を起動すると、SecurityException が発生します。
void ResponseResponse(IAsyncResult result) { XmlRpcHelperRequestState state = result.AsyncState as XmlRpcHelperRequestState; try { state.Response = (HttpWebResponse)state.Request.EndGetResponse(result); ... } catch (Exception e) { // comes here with SecurityException } finally { ... } }
VS2008 Professional、XP Professional、.net 3.5、Silverlight3 を使用しています。必要な追加情報 (またはコード) があれば喜んで提供します。