在确定代码、编译结果和数据库都正常的情况下,无法从数据库取到数据。错误提示:Sysyem.Net.WebException:远程服务器返回了错误:NotFound,监听发现请求数据库的服务异常,访问相关地址HTTP404错误。
向数据库发起的请求异常
访问svc地址后的错误信息
在确定其他各方面正常,并且修复了一遍vs,各种IIS设置检查后依然没有找到原因,而且工程在同事电脑上能够正常运行,最后确定只可能是.Net Framework或者IIS有问题,因为之前同事在机器上装测试工具,安装了.Net Framework3.5以及vcredist_x86,结果之后调试立刻出错,稍后卸载了这两项才能正常调试,但出现上述错误。
最后找到问题原因:可能是之前的安装卸载操作导致.svc处理程序映射缺失,进而导致WCF不能正常使用。
解决办法:
执行以下两条命令("%WINDIR%默认为C:Windows)即可
"%WINDIR%Microsoft.NetFrameworkv4.0.30319aspnet_regiis" –i –enable "%WINDIR%Microsoft.NetFrameworkv4.0.30319ServiceModelReg.exe" -r
再访问.svc地址已经正常,也能正常使用WCF RIA Services与数据库进行交互了。
参考资料:
WCF寄宿IIS时报错问题
One-Time Setup Procedure for the Windows Communication Foundation Samples