0

我们已经多次成功地将我们的站点部署到不同的环境中,但遇到了一个似乎与 RIA 服务设置有关的问题。我们在 Windows Server 2008 64 位机器上进行部署。

基本上我们无法调用我们的任何 WCF RIA 服务端点,我们总是从服务器返回 404。我们能够访问“原始”svc 端点,接收标准的自动生成页面,但每当我们尝试调用一个方法时,我们都会收到 404。

澄清一下,以下 URL 返回标准自动生成的服务页面:

http://localhost/ClientBin/Our-Namespace-DomainService.svc

而以下 URL 仅返回 404

http://localhost/ClientBin/Our-Namespace-DomainService.svc/binary/GetSchemaVersions

我们在stackoverflow上做了很多搜索,但无济于事。我们已经完成了完全重新安装 IIS 的基本工作。确保调用了 aspnet_regiis,确保正确注册了 svc mimetype(这应该通过返回的“原始”页面显而易见),进行 WCF 激活注册,甚至尝试在服务器上安装 RIAServices,使用 SERVER=TRUE(我们bin 默认部署 RIA 的东西)。我们在站点上还有一个额外的服务端点,它是“纯”WCF,它工作得很好(也使用 *.svc URL)。我们在日志中看不到任何错误消息,Fiddler 和 IIS 日志只是声明返回了 404。如前所述,我们最近已将其部署到我们认为类似的环境(相同的操作系统、64 位等)。

我们目前认为上面有些奇怪的 URL 语法(在文件后面有一个路径段)在某种程度上没有被 IIS 管道正确解释,但正在寻找线索来理解可能发生的事情。

任何理解代码如何/为什么没有正确执行的经验、见解或方法都将不胜感激。

4

1 回答 1

2

我们最终自己弄清楚了这一点,只是在此处快速添加答案以供将来参考。

我们的问题是 ExtensionlessUrlHandler 在 IIS 中的处理程序映射的有序列表中排在 SVC 处理程序之前。一旦我们在 ExtensionlessUrlHandler 之前将 SVC 处理程序向上移动,事情就会再次运行。

我们现在正在研究为什么这种排序方式变得不同,但这是另一回事

于 2013-05-01T12:09:33.140 回答