Silverlight调用WebService,发布IIS,本机可以访问,其他机器不能访问。十万火急!求帮助!谢谢!

问题描述

VS2010+IIS7+Silverlight5.1.20513.0,刚接手一个前人交接的项目。里面有Sliverlight调用Webservice,在首页显示内容的一个功能。一直以来都是没有问题的,其中ServiceReferences.ClientConfig文件内容如下:<configuration><system.serviceModel><bindings><basicHttpBinding><bindingname="SilverLightServiceSoap"maxBufferSize="2147483647"maxReceivedMessageSize="2147483647"><securitymode="None"/></binding></basicHttpBinding></bindings><client><endpointaddress="http://localhost/SilverLightService.asmx"binding="basicHttpBinding"bindingConfiguration="SilverLightServiceSoap"contract="OnePageService.SilverLightServiceSoap"name="SilverLightServiceSoap"/></client></system.serviceModel></configuration>不存在跨域问题,因为是公司内部的网,没有clientaccesspolicy.xml和crossdomain.xml,发布在IIS上的是https,默认端口443,一切都能正常运行。就在上礼拜突然首页就报错了,错误如下(135.251.45.147是程序发布的服务器):网页错误详细信息用户代理:Mozilla/4.0(compatible;MSIE7.0;WindowsNT6.1;Trident/5.0;SLCC2;.NETCLR2.0.50727;MediaCenterPC6.0;.NET4.0E;MS-RTCLM8;.NETCLR3.5.30729;.NETCLR3.0.30729;.NET4.0C)时间戳:Tue,16Dec201406:08:24UTC消息:UnhandledErrorinSilverlightApplication[Async_ExceptionOccurred]参数:调试资源字符串不可用。密钥和参数通常提供足够的信息用以诊断该问题。请访问http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.30514.00&File=System.dll&Key=Async_ExceptionOccurred位于System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()位于MapsHotspotDemo.OnePageService.GetUserViewRangeCompletedEventArgs.get_Result()位于MapsHotspotDemo.MainPage.slClient_GetUserViewRangeCompleted(Objectsender,GetUserViewRangeCompletedEventArgse)位于MapsHotspotDemo.OnePageService.SilverLightServiceSoapClient.OnGetUserViewRangeCompleted(Objectstate)行:1字符:1代码:0URI:https://135.251.45.147/DefaultBoss.aspx消息:UnhandledErrorinSilverlightApplication[Async_ExceptionOccurred]参数:调试资源字符串不可用。密钥和参数通常提供足够的信息用以诊断该问题。请访问http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.30514.00&File=System.dll&Key=Async_ExceptionOccurred位于System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()位于MapsHotspotDemo.OnePageService.InitOnePageSummaryCompletedEventArgs.get_Result()位于MapsHotspotDemo.MainPage.slClient_InitOnePageSummaryCompleted(Objectsender,InitOnePageSummaryCompletedEventArgse)位于MapsHotspotDemo.OnePageService.SilverLightServiceSoapClient.OnInitOnePageSummaryCompleted(Objectstate)行:1字符:1代码:0URI:https://135.251.45.147/DefaultBoss.aspx于是乎,开始查问题,上网看了很多朋友说的那些原因及解决方法,都不可行。唯一一种把ServiceReferences.ClientConfig文件改成以下内容,网页可以正常访问,但这是http,不是https:<configuration><system.serviceModel><bindings><basicHttpBinding><bindingname="SilverLightServiceSoap"maxBufferSize="2147483647"maxReceivedMessageSize="2147483647"><securitymode="None"/></binding></basicHttpBinding></bindings><client><endpointaddress="http://135.251.45.147/SilverLightService.asmx"binding="basicHttpBinding"bindingConfiguration="SilverLightServiceSoap"contract="OnePageService.SilverLightServiceSoap"name="SilverLightServiceSoap"/></client></system.serviceModel></configuration>于是我又试了改成下面的:<configuration><system.serviceModel><bindings><basicHttpBinding><bindingname="SilverLightServiceSoap"maxBufferSize="2147483647"maxReceivedMessageSize="2147483647"><securitymode="Transport"/></binding></basicHttpBinding></bindings><client><endpointaddress="https://135.251.45.147/SilverLightService.asmx"binding="basicHttpBinding"bindingConfiguration="SilverLightServiceSoap"contract="OnePageService.SilverLightServiceSoap"name="SilverLightServiceSoap"/></client></system.serviceModel></configuration>这样一来,服务器本机可以正常访问,但是其他机器去访问就还是报上面的错误。这个问题已经研究好久了,都没有解决。特此求助论坛里的各位经验丰富的大神了,谢谢了!

解决方案

解决方案二:
address="http://135.251.45.147:443/SilverLightService.asmx"加上端口访问测试下。
解决方案三:
1、重新发布wcf  2、更新sl对wcf的引用  3、重新编译sl项目  4、检查sl项目中的ServiceReferences.ClientConfig配置文件中的wcf地址  5、用地址是否可以访问wcf6、在IE的把http://135.251.45.147添加信任站点参考
解决方案四:
引用1楼kongwei521的回复:

address="http://135.251.45.147:443/SilverLightService.asmx"加上端口访问测试下。

你可能看错了,这里的443是https的默认端口,相当于80是http的默认端口一样
解决方案五:
问题已经解决了,分享下经验,正确配置文件如下:<configuration><system.serviceModel><bindings><basicHttpBinding><bindingname="SilverLightServiceSoap"maxBufferSize="2147483647"maxReceivedMessageSize="2147483647"><securitymode="Transport"/></binding></basicHttpBinding></bindings><client><endpointaddress="https://135.251.45.147/SilverLightService.asmx"binding="basicHttpBinding"bindingConfiguration="SilverLightServiceSoap"contract="OnePageService.SilverLightServiceSoap"name="SilverLightServiceSoap"/></client></system.serviceModel></configuration>前面提到本机可以访问,但是其他机器不能访问的原因,因为Silverlight编译后把所有相关文件都压缩到xap这个文件中,网上说直接更改里面的配置文件,不需要编译的。这个说法有时候成功有时候失败,恰巧我每次碰到都是失败的。所以最后我把整个项目重新编译,重新发布了一次,就可以成功访问了。

时间: 2024-11-17 19:52:14

Silverlight调用WebService,发布IIS,本机可以访问,其他机器不能访问。十万火急!求帮助!谢谢!的相关文章

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

原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法       群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebService方法,总报这个错误,贴图如下: 解决办法:      1.确定你的Silverlight项目及承载Silverlight的Web程序根目录下都包含2个跨域文件,分别是crossdomain.xml和clientaccesspolicy.xml:  crossdomain.xml文件,

jsp java tomcat-jsp项目 web服务器本机无法访问 其他机器可以访问

问题描述 jsp项目 web服务器本机无法访问 其他机器可以访问 jsp ssh框架 tomcat6.0发布web服务 服务器本机ip+端口号无法访问 其他机器可以访问 防火墙没有问题,ip地址为固定,原本好好的忽然无法访问了,本机ip:端口号 访问提示无法访问 , localhost:端口号 可以访问,ie浏览器无法访问 ,火狐可以. 解决方案 把你的tomcat卸了再装一次看看怎么样

一起谈.NET技术,SilverLight调用WebService的方法

在我们添加Service Reference的时候,可能不知道该服务最终会被部署到什么位置,或者该服务可能被迁移,此时我们可以使用以下手段进行Service的调用,提高代码编写的灵活性. 步骤1:修改宿主Web页面的代码,将服务地址以初始化参数方式传入. <form id="form1" runat="server" style="height:100%">    <div id="silverlightControl

SilverLight调用WebService的方法

在我们添加Service Reference的时候,可能不知道该服务最终会被部署到什么位置,或者该服务可能被迁移,此时我们可以使用以下手段进行Service的调用,提高代码编写的灵活性. 步骤1:修改宿主Web页面的代码,将服务地址以初始化参数方式传入. <form id="form1" runat="server" style="height:100%">     <div id="silverlightContro

java程序调用xfire发布的webService服务(二)

在上一篇的调用xfire发布的webService服务中,我只是从服务端返回了一个字符串给客户端,却没有测试从客户端传递数据给服务端.而实际应用中一般是不太可能只出现这样的应用场景的,因此我便更进一步测试了客户端传递数据给服务端. 因为相关的jar包在上一篇已经说过,因此便不再重复说明,这次的测试步骤如下: 一.测试向服务端传递字符串(重点在第二个):     为了进一步理解服务搭建,我重新写了一个服务端服务类: 接口: package xfireTest; public interface X

C# WebService发布以及IIS发布_C#教程

首先我们要做的就是先把IIS(Internet信息服务)打开,我用的是win8 的系统,所以这里以win8系统的操作来讲 一.IIS的一些事先操作 1.打开控制面板,然后进入程序 2.进入程序以后我们找到 启用或关闭Windows功能  3.进入以后把  Internet信息服务  的都选上,单击"确定" 上述的步骤好了以后我们退回到控制面板  ,找到   系统和安全 里面的  管理工具     点击"管理工具"    ,第一个就是我们的IIS了,双击打开它 我们会

ArcGIS API for Silverlight 调用GP服务准备---GP模型建立、发布、测试

原文:ArcGIS API for Silverlight 调用GP服务准备---GP模型建立.发布.测试                                                                                                                      第一篇.GP降雨量等值线建模.发布及测试          在水利.气象等行业中,要在WebGIS中实现空间分析功能,如绘制等值线.等高线.等直面.缓冲区等都

java调用.net发布 的webservice,实体类怎么传

问题描述 java调用.net发布 的webservice,实体类怎么传 java调用.net发布 的webservice,实体类怎么传, 解决方案 哈哈,刚好之前我做个类似的项目,写了一个心得这个是传参数的,实体类实现序列化一样的 解决方案二: http://blog.csdn.net/qq_15002323/article/details/49020849

用vs2013发布网站如何能像2010一样直接发布到本机IIS上

问题描述 用vs2013发布网站如何能像2010一样直接发布到本机IIS上,找不到这个选项呀 解决方案 解决方案二:我和楼主一样的..烦人解决方案三:先发布至一个文件夹,然后再部署至IIS: