GVKun编程网logo

Silverlight访问Java Webservice策略文件安放位置(javaweb项目访问路径)

10

这篇文章主要围绕Silverlight访问JavaWebservice策略文件安放位置和javaweb项目访问路径展开,旨在为您提供一份详细的参考资料。我们将全面介绍Silverlight访问Java

这篇文章主要围绕Silverlight访问Java Webservice策略文件安放位置javaweb项目访问路径展开,旨在为您提供一份详细的参考资料。我们将全面介绍Silverlight访问Java Webservice策略文件安放位置的优缺点,解答javaweb项目访问路径的相关问题,同时也会为您带来19.Silverlight调用webservice上传多个文件、21.循环访问WebService方法来看Silverlight下WebService异步请求、22.Silverlight使用WebService调用C++,Delphi编写的DLL文件、ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法的实用方法。

本文目录一览:

Silverlight访问Java Webservice策略文件安放位置(javaweb项目访问路径)

Silverlight访问Java Webservice策略文件安放位置(javaweb项目访问路径)

在项目开发过程中,如果前台使用Silvrlight开发,调用Java开发Webservice。在部署Webservice的时候要注意,策略文件要正确放置,才能起到效果。

1、常见的Tomcat部署,要将策略文件放置到 ./webapps/ROOT/ 文件夹下。

2、如果使用Nginx做负载均衡,要将策略文件放置到 html 文件夹下。

附带策略文件:clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8"?> 
<access-policy> 
    <cross-domain-access> 
        <policy> 
            <allow-from http-request-headers="SOAPAction"> 
                <domain uri="*"/> 
            </allow-from> 
            <grant-to> 
                <resource path="/" include-subpaths="true"/> 
            </grant-to> 
        </policy> 
    </cross-domain-access> 
</access-policy>

19.Silverlight调用webservice上传多个文件

19.Silverlight调用webservice上传多个文件

        Silverlight不支持读写服务器端的硬盘,可是很多时候用户需要在Silverlight客户端往服务器端上传文件,那么本节将讲述 Silverlight中最简单的上传文件的方式:在Silverlight客户端将文件序列化为Byte[]字符组,然后服务器端使用 webService接收客户端的数据并且还原为文件即可。

        下面我们新建一个Silverlight应用程序解决方案SLUpload,然后在SLUpload.Web项目中鼠标右键点击此项目,添加一个web服务页面Upload。在此页面中写入下面代码:

 

 
 
  1. /// <summary> 
  2. /// 上传文件 
  3. /// </summary> 
  4. /// <param name="FileByte">文件的字节</param> 
  5. /// <param name="FileName">文件名</param> 
  6. /// <param name="FileExtention">文件扩展名</param> 
  7. /// <param name="SavePath">文件保存地址</param> 
  8. /// <returns></returns
  9. [WebMethod] 
  10. public string Uploadfile(byte[] FileByte,string FileName,string SavePath) 
  11. //文件的保存位置 
  12. string filepath = SavePath + FileName; 
  13. //判断在该位置是否有相同的文件。有的话则删除原来同名的文件 
  14. if (File.Exists(filepath)) 
  15. //删除该位置的同名文件 
  16. File.Delete(filepath); 
  17. //根据传入的byte[]数据和文件位置创建一个FileStream实例 
  18. using (FileStream stream = new FileStream(filepath, FileMode.CreateNew)) 
  19. //向文件中写入数据流 
  20. stream.Write(FileByte, 0, FileByte.Length); 
  21. }; 
  22. return FileName; 

        这个Web服务方法的参数分别代表传输过来的文件内容字节组、文件名、文件保存路径。对于方法中使用的相关操作都在上面源码中有说明,我就不多说了。下面 我们在SLUpload项目中鼠标右键点击项目名,然后“添加服务引用”,填入SLUpload.Web的upload.asmx页面的URL地址并且命 名空间填写为UpLoadService点击确定,即在SLUpload项目中引用了webservice服务。下面我们看MainPage.xaml的 代码如下:

 
 
  1. <Grid x:Name="LayoutRoot" Background="White"
  2. <Button Content="上 传" Height="23" HorizontalAlignment="Left" Margin="20,36,0" Name="btnUpload" VerticalAlignment="Top" Width="75" Click="btnUpload_Click" /> 
  3. <ListBox Height="183" HorizontalAlignment="Left" Margin="112,0" Name="listBox1" VerticalAlignment="Top" Width="232" /> 
  4. <Button Content="清 空" Height="23" HorizontalAlignment="Left" Margin="20,88,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" /> 
  5. </Grid> 

        下面我们看MainPage.xaml.cs的关键代码,注意这里需要引用:using System.IO;using SLUpload.UpLoadService;这两个域名空间:

 
 
  1. private void btnUpload_Click(object sender, RoutedEventArgs e) 
  2.   { 
  3.       //设置一个选择文件的窗口的实例,并且设置为多选 
  4.       OpenFileDialog dialog = new OpenFileDialog(); 
  5.       dialog.Multiselect=true
  6.      if (dialog.ShowDialog().Value) 
  7.       { 
  8.          //循环获取多选到的文件,然后将这些集合都通过调用webService上传 
  9.           foreach (FileInfo file in dialog.Files) 
  10.           { 
  11.               //读取Stream 
  12.               Stream stream = file.OpenRead(); 
  13.               stream.Position = 0; 
  14.               //设置字节数组初始化 
  15.               byte[] buffer = new byte[stream.Length + 1]; 
  16.               //将文件写入字节数组中   
  17.               stream.Read(buffer, buffer.Length); 
  18.               string fileName = file.Name
  19.               //调用webService服务方法上传文件 
  20.               UploadSoapClient upfile = new UploadSoapClient(); 
  21.               //设置缓冲区存取的字符、文件名称、文件保存路径,并且调用方法上传 
  22.               upfile.UploadfileAsync(buffer, fileName, "C:\\"); 
  23.               upfile.UploadfileCompleted += new EventHandler<UploadfileCompletedEventArgs>(upfile_UploadfileCompleted); 
  24.           } 
  25.       } 
  26.       else 
  27.       { 
  28.           MessageBox.Show("你没有选择文件,请重新选择文件!"); 
  29.       } 
  30.   } 
  31.   void upfile_UploadfileCompleted(object sender, UploadfileCompletedEventArgs e) 
  32.   { 
  33.       this.listBox1.Items.Add(e.Result + "文件上传成功!"); 
  34.   } 
  35.  
  36.   private void button1_Click(object sender, RoutedEventArgs e) 
  37.   { 
  38.       this.listBox1.Items.Clear(); 
  39.   } 

         这样一个最简单的Silverlight上传就做好了,但是在实际运行当中我们观察得出这种上传方式只能够上传小于2M的文件。那是因为 ServiceReferences.ClientConfig文件的webService传输配置中设置 的 maxBufferSize="2147483647" 。很显然,在实际中我们如果要传输大文件的话,就需要考虑将一个大文件切割成为数个小文件来进行传输。这是下一个话题。

         本实例采用VS2010+Silverlight 4.0编写。请点击 SLUpload.rar 下载源码实例。

21.循环访问WebService方法来看Silverlight下WebService异步请求

21.循环访问WebService方法来看Silverlight下WebService异步请求

        问题:笔者在项目中需要循环一个WebService方法N次,以获得N个结果数据,但是这过程中出现了一些问题,获取到的结果数据量大于笔者的预期且值为N*N。

        Silverlight中常见的数据访问方式都是通过类似于WebService异步请求方式来获取的,相信大部分人都会这个WebService的请求 方法,但是在某一个需要输入参数获取一个结果的WebService方法中,假设我们需要循环输入N个参数,然后获取N个结果集的情况下进行的操作会出现 什么情况呢?本文将围绕循环WebService循环访问探讨一下Silverlight中的异步WebService数据请求过程。

        首先新建一个Silverlight应用程序项目,在Web项目中添加Wservice.asmx的服务页面,在页面内我们创建一个WebService 方法源码如下,输入参数为1、2、3、4、5的情况下,获得相应的结果为(参数---word)如1---word,2---word。

  
  
  1. [WebMethod] 
  2. public string GetData(int id) 
  3. string rstr = string.Empty; 
  4. rstr = id.ToString() + "---word"
  5. return rstr; 

        下面我们编写一个实体类,来绑定ListBox控件。源码如下:

  
  
  1. /// <summary> 
  2. /// 信息类 属性Id为ID值,属性Infostr为信息类的字符值 
  3. /// </summary> 
  4. public class info 
  5. int id; 
  6. string infostr; 
  7.  
  8. public int Id 
  9. get { return id; } 
  10. set { id = value; } 
  11.  
  12. public string Infostr 
  13. get { return infostr; } 
  14. set { infostr = value; } 

        下面我们在XAML文件中添加两个ListBox和两个Button控件。分别用来显示错误的多条数据的情况和正确的N条数据的情况。

 

  
  
  1. <ListBox Height="193" HorizontalAlignment="Left" Margin="61,29,0" Name="listBox1" VerticalAlignment="Top" Width="154" /> 
  2. <Button Content="获取25个WebService数据" Height="23" HorizontalAlignment="Left" Margin="61,240,0" Name="button1" VerticalAlignment="Top" Width="154" Click="button1_Click" /> 
  3. <ListBox Height="193" HorizontalAlignment="Left" Margin="264,0" Name="listBox2" VerticalAlignment="Top" Width="154" /> 
  4. <Button Content="获取5个WebService数据" Height="23" HorizontalAlignment="Left" Margin="264,0" Name="button2" VerticalAlignment="Top" Width="154" Click="button2_Click" /> 

        下面我们查看CS中的关键代码如下:

 

  
  
  1. #region 获取到错误的数据条数 条数是N*N 
  2. /// <summary> 
  3. /// 获取错误的多条数据的方法 
  4. /// </summary> 
  5. public void GetMoreList() 
  6. //清除infoMoreList数据集,然后循环访问WebService方法 
  7. infoMoreList.Clear(); 
  8. for (int i = 1; i < 6; i++) 
  9. MoreClient.GetDataAsync(i); 
  10. MoreClient.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(wClient_GetDataCompleted); 
  11. void wClient_GetDataCompleted(object sender, GetDataCompletedEventArgs e) 
  12. info inf = new info() 
  13. Id=1, Infostr=e.Result 
  14. }; 
  15. infoMoreList.Add(inf); 
  16. #endregion 
  17.  
  18. #region 获取正确的数据条数 
  19. /// <summary> 
  20. /// 获取正确数据的方法 
  21. /// </summary> 
  22. public void GetList() 
  23. //清除infoList数据集,然后循环访问WebService方法 
  24. infoList.Clear(); 
  25. for (int i = 1; i < 6; i++) 
  26. LessClient.GetDataAsync(i); 
  27. LessClient.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(wClient_LessGetDataCompleted); 
  28.  
  29. void wClient_LessGetDataCompleted(object sender, GetDataCompletedEventArgs e) 
  30. info inf = new info() 
  31. Id=1, Infostr=e.Result 
  32. }; 
  33. infoList.Add(inf); 
  34. #endregion 

        关键在于for循环之中有没有包括MoreClient.GetDataCompleted事件的加载。 

        第一种错误的情况下每次循环发出异步请求加载一次GetDataCompleted事件,一共循环五次,那么加载了5次GetDataCompleted事件的时候,也发出了5次的Ansyc(i)请求,所以5*5=25次获取事件结果数据,这是错误的!

        第二种正确的情况下每次循环发出异步的Ansyc(i)请求即可,只是在循环完之后加载一次GetDataCompleted事件即可,然后就会执行 5*1=5次获取事件结果处理。通过每刷新程序,然后按Button键得到的右边ListBox数据排列不同可以看出:发出请求的时间顺序和得到结果的时 间顺序是不一致的。

        下图展示两种情况得到的数据如下:

         本实例的所有源代码如下,点击代码展开观看:

Wservice.asmx.cs源代码
  
  
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Web; 
  5. using System.Web.Services; 
  6.  
  7. namespace SLWebService.Web 
  8. /// <summary> 
  9. /// Wservice 的摘要说明 
  10. /// </summary> 
  11. [WebService(Namespace = "http://tempuri.org/")] 
  12. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
  13. [System.ComponentModel.ToolBoxItem(false)] 
  14. // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
  15. // [System.Web.Script.Services.ScriptService] 
  16. public class Wservice : System.Web.Services.WebService 
  17.  
  18. [WebMethod] 
  19. public string GetData(int id) 
  20. string rstr = string.Empty; 
  21. rstr = id.ToString() + "---word"
  22. return rstr; 
MainPage.xaml源代码

    
    
  1. <UserControl xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="SLWebService.MainPage" 
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  6. mc:Ignorable="d" 
  7. d:DesignHeight="800" d:DesignWidth="800"
  8.  
  9. <Grid x:Name="LayoutRoot" Background="White"
  10. <ListBox Height="193" HorizontalAlignment="Left" Margin="61,0" Name="listBox1" VerticalAlignment="Top" Width="154" /> 
  11. <Button Content="获取25个WebService数据" Height="23" HorizontalAlignment="Left" Margin="61,0" Name="button1" VerticalAlignment="Top" Width="154" Click="button1_Click" /> 
  12. <ListBox Height="193" HorizontalAlignment="Left" Margin="264,0" Name="listBox2" VerticalAlignment="Top" Width="154" /> 
  13. <Button Content="获取5个WebService数据" Height="23" HorizontalAlignment="Left" Margin="264,0" Name="button2" VerticalAlignment="Top" Width="154" Click="button2_Click" /> 
  14. </Grid> 
  15. </UserControl> 
MainPage.xaml.cs源代码
 
  
  
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Net; 
  5. using System.Windows; 
  6. using System.Windows.Controls; 
  7. using System.Windows.Documents; 
  8. using System.Windows.Input; 
  9. using System.Windows.Media; 
  10. using System.Windows.Media.Animation; 
  11. using System.Windows.Shapes; 
  12. using System.Threading; 
  13. using SLWebService.ServiceReference1; 
  14. namespace SLWebService 
  15. public partial class MainPage : UserControl 
  16. public MainPage() 
  17. InitializeComponent(); 
  18. //初始化的时候就执行 
  19. GetMoreList(); 
  20. GetList(); 
  21. List<info> infoMoreList = new List<info>(); 
  22. List<info> infoList = new List<info>(); 
  23. WserviceSoapClient MoreClient = new WserviceSoapClient(); 
  24. WserviceSoapClient LessClient = new WserviceSoapClient(); 
  25. private void button1_Click(object sender, RoutedEventArgs e) 
  26. this.listBox1.ItemsSource = infoMoreList; 
  27. this.listBox1.displayMemberPath = "Infostr"
  28.  
  29. private void button2_Click(object sender, RoutedEventArgs e) 
  30. this.listBox2.ItemsSource = infoList; 
  31. this.listBox2.displayMemberPath = "Infostr"
  32.  
  33. #region 获取到错误的数据条数 条数是N*N 
  34. /// <summary> 
  35. /// 获取错误的多条数据的方法 
  36. /// </summary> 
  37. public void GetMoreList() 
  38. //清除infoMoreList数据集,然后循环访问WebService方法 
  39. infoMoreList.Clear(); 
  40. //错误的循环获取WebBSer 
  41. for (int i = 1; i < 6; i++) 
  42. MoreClient.GetDataAsync(i); 
  43. MoreClient.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(wClient_GetDataCompleted); 
  44. void wClient_GetDataCompleted(object sender, Infostr=e.Result 
  45. }; 
  46. infoMoreList.Add(inf); 
  47. #endregion 
  48.  
  49. #region 获取正确的数据条数 
  50. /// <summary> 
  51. /// 获取正确数据的方法 
  52. /// </summary> 
  53. public void GetList() 
  54. //清除infoList数据集,然后循环访问WebService方法 
  55. infoList.Clear(); 
  56. for (int i = 1; i < 6; i++) 
  57. LessClient.GetDataAsync(i); 
  58. LessClient.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(wClient_LessGetDataCompleted); 
  59.  
  60. void wClient_LessGetDataCompleted(object sender, Infostr=e.Result 
  61. }; 
  62. infoList.Add(inf); 
  63. #endregion 
  64.  
  65. /// <summary> 
  66. /// 信息类 属性Id为ID值,属性Infostr为信息类的字符值 
  67. /// </summary> 
  68. public class info 
  69. int id; 
  70. string infostr; 
  71.  
  72. public int Id 
  73. get { return id; } 
  74. set { id = value; } 
  75.  
  76. public string Infostr 
  77. get { return infostr; } 
  78. set { infostr = value; } 

         本实例采用VS2010+Silverlight 4.0编写,点击 SLWebService.rar 下载源代码。

22.Silverlight使用WebService调用C++,Delphi编写的DLL文件

22.Silverlight使用WebService调用C++,Delphi编写的DLL文件

        在Silverlight程序(非Out of browser模式)中是无法直接调用DLL的,但是很多的计算或者其他应用程序的调用中我们需要用到DLL的加载。比如调用DLL来识别身份证读卡器传 输过来的信号,比如要和某Delph编写的程序数据通讯等等。本文将简单的自写一个DLL文件,然后通过调用此DLL自定义的一个GetNum函数计算传 入得两个参数之和。

        首先我们使用VS2010编写一个名为IlasLinkDll.dll的C++语言DLL文件(编写这个DLL的源码也会在本章结尾附带),其内部的关键代码如下:

 

 
 
  1. #ifdef MYLIBDLL @H_301_19@
  2. #define MYLIBDLL extern "C" _declspec(dllimport) @H_301_19@
  3. #else @H_301_19@
  4. #define MYLIBDLL extern "C" _declspec(dllexport) @H_301_19@
  5. #endif @H_301_19@
  6. MYLIBDLL double GetNum(double Anum,double Bnum); @H_301_19@
  7.  @H_301_19@
  8. double GetNum(double Anum,double Bnum) @H_301_19@
  9. @H_301_19@
  10.  @H_301_19@
  11. return Anum+Bnum; @H_301_19@
  12. @H_301_19@

        然后我们新建一个名为sllinkDLl的Silverlight应用程序项目,在sllinkDLl.Web项目中我们引用 IlasLinkDll.dll文件,新建一个Wservice.asmx的web服务文件。在此文件中编写以下代码且添加using System.Runtime.InteropServices;的引用:

 

 
 
  1. [WebMethod] @H_301_19@
  2. public string GetNumber(double A,double B) @H_301_19@
  3. @H_301_19@
  4. return GetNum(A, B).ToString() ; @H_301_19@
  5.  @H_301_19@
  6. @H_301_19@
  7. /// <summary> @H_301_19@
  8. /// 获取到DLL的值 @H_301_19@
  9. /// </summary> @H_301_19@
  10. /// <param name="Anumber">数字A</param> @H_301_19@
  11. /// <param name="Bnumber">数字B</param> @H_301_19@
  12. /// <returns></returns@H_301_19@
  13. [DllImport("IlasLinkDll.dll", CharSet = CharSet.Ansi, EntryPoint = "GetNum", ExactSpelling = false)] @H_301_19@
  14. public static extern double GetNum(double Anumber, double Bnumber); @H_301_19@

        最后在Silverlight程序中鼠标右键点击项目名--添加服务引用--添加http://localhost:4389/Wservice.asmx地址即可。在MainPage.xaml.cs文件中写入以下关键代码即可调用WebService中的GetNumber方法,通过DLL计算两个数字之间的和,返回显示出来。

 

 
 
  1. public MainPage() @H_301_19@
  2. @H_301_19@
  3. InitializeComponent(); @H_301_19@
  4. //创建webService代理类的对象实例 @H_301_19@
  5. WServiceSoapClient sclient=new WServiceSoapClient(); @H_301_19@
  6. //调用GetNumber方法,并传递两个参数 @H_301_19@
  7. sclient.GetNumberAsync(500,23); @H_301_19@
  8. sclient.GetNumberCompleted += new EventHandler<GetNumberCompletedEventArgs>(sclient_GetNumberCompleted); @H_301_19@
  9.  @H_301_19@
  10. @H_301_19@
  11.  @H_301_19@
  12. void sclient_GetNumberCompleted(object sender, GetNumberCompletedEventArgs e) @H_301_19@
  13. @H_301_19@
  14. //结果将为523 @H_301_19@
  15. MessageBox.Show(e.Result); @H_301_19@
  16. @H_301_19@

        通过上面的代码我们传入500和23两个参数。然后得到结果为523的弹出窗口。下面我们看一下加载DLL的DllImport特性的参数使用方法:

 

 
 
  1. [DllImport("IlasLinkDll.dll", ExactSpelling = false)] @H_301_19@
  2.  @H_301_19@
  3.    a、CallingConvention 参数指示入口点的调用约定。如果未指定 CallingConvention,则使用默认值 CallingConvention.Winapi。 @H_301_19@
  4.    b、CharSet 参数指示用在入口点中的字符集。如果未指定 CharSet,则使用默认值 CharSet.Auto。 @H_301_19@
  5.    c、EntryPoint 参数给出 dll 中入口点的名称。如果未指定 EntryPoint,则使用方法本身的名称。 @H_301_19@
  6.    d、ExactSpelling 参数指示 EntryPoint 是否必须与指示的入口点的拼写完全匹配。如果未指定 ExactSpelling,则使用默认值 false。 @H_301_19@
  7.    e、PreserveSig 参数指示方法的签名应当被保留还是被转换。当签名被转换时,它被转换为一个具有 HRESULT 返回值和该返回值的一个名为 retval 的附加输出参数的签名。如果未指定 PreserveSig,则使用默认值 true。 @H_301_19@
  8.    f、SetLastError 参数指示方法是否保留 Win32"上一错误"。如果未指定 SetLastError,则使用默认值 false。 @H_301_19@

        Tip:笔者在某一个项目中遇到无论指明什么EntryPoint入口点和CharSet字符集都无法加载一个第三方DLL文件时,就直接自己使用C++ 编写了一个DLL文件来加载这个C#中无法识别加载的第三方DLL,然后在C#中调用自己编写的DLL文件解决了问题。

        本实例源码由VS2010+Silverlight4.0编写,点击 SLLinkDLl.rar 下载本实例源码。点击 IlasLinkDll.rar 下载DLL文件源码。

ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法

群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebService方法,总报这个错误,贴图如下:


解决办法:

     1、确定你的Silverlight项目及承载Silverlight的Web程序根目录下都包含2个跨域文件,分别是crossdomain.xml和clientaccesspolicy.xml:

 crossdomain.xml文件,如下:

    <?xml version="1.0"?>  
        <cross-domain-policy>  
        <allow-access-from domain="*" />  
    </cross-domain-policy>  
clientaccesspolicy.xml文件,如下:

<?xml version="1.0" encoding="utf-8"?>  
<access-policy>  
  <cross-domain-access>  
    <policy>  
      <allow-from>  
        <domain uri="*"/>  
      </allow-from>  
      <grant-to>  
        <resource path="/" include-subpaths="true"/>  
      </grant-to>  
    </policy>  
  </cross-domain-access>  
</access-policy> 
2、在Silverlight中添加Web服务引用的时候,不要使用VS自带的类似http://localhost:90801/XXX/xxx.asmx地址,将承载Silverlight的Web程序部署到IIS中,然后添加Web服务引用,地址类似http://localhost/XXX/YYY/xxx.asmx,当然前提你的WebService要是正确的。接下来的一步很重要,打开引用完成后的服务引用配置文件,如果服务地址在本地的话,请去掉地址中的应用程序名前面的符号,如下图:

通过以上步骤的处理后,调试运行程序将不会出现跨域错误提示了,写出来,让后来遇到此问题的人能少走弯路。

关于Silverlight访问Java Webservice策略文件安放位置javaweb项目访问路径的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于19.Silverlight调用webservice上传多个文件、21.循环访问WebService方法来看Silverlight下WebService异步请求、22.Silverlight使用WebService调用C++,Delphi编写的DLL文件、ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法的相关信息,请在本站寻找。

本文标签: