在Silverlight 2 beta 2 中访问webservice 时,出现“The remote server returned an unexpected response: (404) Not Found”的解决办法


在Silverlight 2 beta 2中,访问webservice 或者 wcf 的时候,常常会出现这样的错误:
An exception of type 'System.ServiceModel.ProtocolException' occurred in System.ServiceModel.dll but was not handled in user code
Additional information: The remote server returned an unexpected response: (404) Not Found.
在地址栏中,直接输入asmx 或者.svc 文件,运行一切正常。
查了下资料,发现是客户端跨域访问策略文件(clientaccesspolicy.xml)产生的问题。
正确的文件应该是:

clientaccesspolicy.xml 文件


但是,很多网友却很迷惑,这个文件在什么地方?或者找到了地方,修改了为什么还是不生效呢?
原来是clientaccesspolicy.xml 文件的地址不正确,比如我们webservice目录叫做webservice1,引用地址是http://localhost/webservice1/webservice.asmx,而silverlight不是在http://localhost/webservice1这个目录下找clientaccesspolicy.xml,而是在http://localhost/下找这个文件.所以假如你的IIS默认目录是"c:\inetpub\wwwroot"的话,webservice1/webservice.asmx是部署在“c:\inetpub\wwwroot\webservice1”,那么clientaccesspolicy.xml 就应该放在“c:\inetpub\wwwroot”而不是c:\inetpub\wwwroot\webservice1下面。但是VS2008 在调试状态下运行的时候,其URL通常是http://localhost/:端口号/webservice.asmx ,这样我们就不知道clientaccesspolicy.xml 文件该放在什么地方了,这种情况我也没有找到比较好的解决办法,通常是把webservice.asmx 发布到IIS中(http://localhost/webservice1/webservice.asmx),然后再进行调试,这样一般都能解决问题。

优质内容筛选与推荐>>
1、JAVA中equals()与“==”的区别(转载)
2、基于 Windows Mobile 的 Pocket PC 和 Smartphone 的开发工具简介
3、Maven的作用
4、技巧
5、ubuntu下hadoop完全分布式部署


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号