我silverlight客户端调本地调试运行的wcf服务没有问题,但调用该服务在iis的部署则返回notfount错误。
补充:只有与服务不在同一工程里的方法都会返回该错误,与服务在同一个工程的方法能正常访问
silverlight+wcf问题是挺多的,不过基本大部分由于都是代码异常没有捕获引起的。
返回notfound的错误我遇到过很多次,不过具体原因忘了。
给个思路:
1:wcf部署IIS之后,先用远程看能不能打开wcf部署的svc,确保第一步通过
2:在本地VS2008/2010远程调试状态下运行,如果异常就查看异常信息
notfound可能原因:
WCF方法已调整,客户端没有编绎更新引用,对应不上。
只有与服务不在同一工程里的方法都会返回该错误?这个问题顺便看看是不是跨域引起的。在iis根目录下添加跨域配置文件不要忘了。
WCF 发布后;服务路径可能会改变,先确认下在IIS 中是否能够访问该服务(按原来配置的服务地址);开发项目时,引用WCF 服务最好是引用已经发布好的服务。
怎么解决的
OK 解决了,服务(svc)的Web.config配置有2个,一个是默认的连接数据库 ,一个权限的,权限的Data Source名字改了,导致连接不上数据库。
<connectionStrings>
<add name="default" connectionString="Data Source=xx;User Id=xx;Password=123" providerName="System.Data.OracleClient" />
<add name="xb" connectionString="Data Source=xx;User Id=rr;Password=rr" providerName="System.Data.OracleClient" />
</connectionStrings>
而这个方法返回的是bool型,在客户端返回的错误永远是NOT FOUND,这样我改下方法,返回string,看下究竟哪错了。