• C# sliverlight调用WCF服务出现的一个错误


    错误提示如下:

    尝试向 URI“http://localhost:8396/Service1.svc”发出请求时出错。这可能是由于试图以跨域方式访问服务而又没有正确的跨域策略,或策略不适用于 SOAP 服务。您可能需要与该服务的所有者联系,以发布跨域策略文件并确保该文件允许发送 SOAP 相关的 HTTP 标头。出现此错误也可能是由于使用的是 Web 服务代理中的内部类型而没有使用 InternalsVisibleToAttribute 属性。有关详细信息,请参阅内部异常。

    出现问题的过程:

    1、打开vs2013,新建项目sliverlight引用程序

    2、在解决方案中添加一个新建项目wcf服务应用程序

    3、在SilverlightApplication1中添加服务引用,单击"发现"按钮(添加服务之前记得将wcf服务编译生成一下,不然找不到服务)

    4、在SilverlightApplication1中使用wcf服务

    MainPage.xaml.cs添加代码(红框内部分是添加进去的)

    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    
    namespace SilverlightApplication1
    {
        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
    
                ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();
                client.GetDataCompleted += client_GetDataCompleted;     //处理返回值的函数
                client.GetDataAsync(1);     //传参数的地方
            }
    
            void client_GetDataCompleted(object sender, ServiceReference1.GetDataCompletedEventArgs e)   //处理返回值的函数
            {
                MessageBox.Show(e.Result);
                //throw new NotImplementedException();
            }
        }
    }
    View Code

    5、编译运行即出现本文开头提到的错误。

    6、解决方法

    在WCF服务目录下放两个文件clientaccesspolicy.xml、crossdomain.xml即可

    7、运行结果

    整个测试的项目(此项目是在vs2013下生成的)下载:链接:http://pan.baidu.com/s/1eQezJj0

  • 相关阅读:
    2020-05-28 Beta冲刺第一天
    团队作业第六次——凡事预则立
    团队作业第六次——alpha阶段问题总结随笔
    团队作业第五次——冲刺总结
    2020-05-08 冲刺第十天
    团队作业第五次——测试随笔
    软件工程实践2019第三次作业
    软件工程实践2019第二次作业
    软件工程实践2019第一次作业
    M4C:TextVQA的分布预测多模态Transformers
  • 原文地址:https://www.cnblogs.com/lwngreat/p/4757154.html
Copyright © 2020-2023  润新知