我有一个使用RIA服务的大型Silverlight应用程序,我正在从WS2008迁移到WS2012。此应用程序在2008机器上运行良好。
在我的新机器上:
启用WCF激活,IIS,适用的安全性等
使用SERVER = TRUE
定期svc的工作(我有一些我用于记录)就好了,我能够按预期与他们沟通。
但是,当对域服务进行调用时,我收到404错误。
对/Clientbin/service_name.svc下的域服务的任何调用都会返回404错误。
过去几天我一直在拔头发试图解决这个问题。有什么想法吗?
谢谢!
答案 0 :(得分:2)
我最终解决了这个问题。 404在你到达执行代码之前,如果存在一些潜在的错误,显然就是你用RIA服务得到的。至少为我做到这一点的最好方法是创建一个不存在的svc文件(假装它是一个普通的wcf服务),将它放在ClientBin文件夹中,然后使用Fiddler。一旦文件存在,我的404就成了500,并在Fiddler中描述了错误。
在我的情况下,错误是服务器上没有安装SqlServerTypes库,而且它正在抛出。
希望它有所帮助。
答案 1 :(得分:1)
也许你已经知道了,如果不是它,那就值得一看:Troubleshooting the Deployment of a RIA Services Solution。
另外,我不打算在服务器端安装RiaServices,只需确保将“Copy Local”设置为System.ServiceModel.DomainServices。*
答案 2 :(得分:0)
bin
ClientBin
如果您正在使用自动部署(我使用TFS),您应该确保实际部署了bin
文件夹。由于某种原因,我的bin
文件夹没有通过msdeploy部署到新服务器 - 但所有其他文件都在那里。
ClientBin
包含xap文件,它是在客户端上运行的文件。对我来说部署得很好 - 所以看起来我的应用程序已成功部署。你会围着那些该死的svc
映射圈而来,这是一个完全红色的鲱鱼。
如果没有bin文件夹,任何启用SVC处理程序的数量都不会有任何区别!
-
所以事实证明我的bin文件夹自2015年以来没有更新(即使在旧服务器上),这并不重要,但这解释了为什么我添加的一些新功能从未工作过lol。它之前工作的唯一原因是我最初在开始使用TFS之前对其进行了x复制,因为TFS部署仅出于某种原因部署了客户端应用程序。
这最终导致了我的问题(这是下面的正确设置):