4

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();
  }
}
  1. 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 を使用しています。必要な追加情報 (またはコード) があれば喜んで提供します。

4

1 に答える 1