Windows Server 2012上的RIA服务404错误

时间:2014-01-21 14:09:31

标签: c# wcf wcf-ria-services

我有一个使用RIA服务的大型Silverlight应用程序,我正在从WS2008迁移到WS2012。此应用程序在2008机器上运行良好。

在我的新机器上:

  • 启用WCF激活,IIS,适用的安全性等

  • 使用SERVER = TRUE

  • 安装RiaServices.msi

定期svc的工作(我有一些我用于记录)就好了,我能够按预期与他们沟通。

但是,当对域服务进行调用时,我收到404错误。

对/Clientbin/service_name.svc下的域服务的任何调用都会返回404错误。

过去几天我一直在拔头发试图解决这个问题。有什么想法吗?

谢谢!

3 个答案:

答案 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部署仅出于某种原因部署了客户端应用程序。

这最终导致了我的问题(这是下面的正确设置):

enter image description here