将Silverlight应用程序连接到自托管WCF服务

时间:2009-08-15 14:53:57

标签: wcf self-hosting

我创建了一个运行在192.168.0.199:87的WCF服务。该服务没有问题。然而,当我创建一个silverlight应用程序来在VS中的我的开发者电脑上使用此服务时,我遇到了跨域问题。我怎么解决这个问题。该服务不是IIS WCF服务。我也无法在同一端口上托管WCF服务和silverlight应用程序。 Silverlight正在192.178.0.199:87上查找clientaccesspolicy.xml,在这种情况下,这是我自托管的WCF服务的地址。

任何帮助都会很棒。

这是我的代码,如果我酿造好东西,我现在不会。 我的app.config文件位于此处。我认为这是一个终点问题,但我不确定。 http://213.46.36.140/app.config.txt



namespace WindowsFormsApplication11
{
    public partial class Form1 : Form
    {
        public ServiceHost _host = null;

        public Form1()
        {
            InitializeComponent();
        }      

        private void button1_Click(object sender, EventArgs e)
        {
            _host = new ServiceHost(typeof(WmsStatService));
            _host.Open();
        }
    }

    // Define a service contract.
    [ServiceContract(Namespace = "http://WindowsFormsApplication11")]
    public interface IWmsStat
    {
        [OperationContract]
        string sayHello(string name);
        [OperationContract, WebGet(UriTemplate = "/clientaccesspolicy.xml")]
        Stream GetSilverlightPolicy();
    }

    public class WmsStatService : IWmsStat
    {
        public string sayHello(string name)
        {
            return "hello there " + name + " nice to meet you!";
        }

        Stream StringToStream(string result)
        {
            WebOperationContext.Current.OutgoingResponse.ContentType = "application/xml";
            return new MemoryStream(Encoding.UTF8.GetBytes(result));
        }
        public Stream GetSilverlightPolicy()
        {
            // result cointains the clienaccpolicy.xml content.
            //
string result = @"

    
        
            
                
            
            
                
            
        
    
";
            return StringToStream(result);
        }
    }
}


0 个答案:

没有答案