1

我正在将旧的非 MVC 代码集成到 MVC 4 项目中。旧代码在根目录和受基本身份验证的 API 子文件夹中具有带有 .SVC 扩展名的 WCF 服务。

起初,所有 SVC 文件的 (http://mysite/myservice.svc/DoCommand) 等帖子都给出 404 错误。然后我添加了这个:

routes.IgnoreRoute("{ allsvc}", new { allsvc = @"..svc (/.*)?" });

现在可以调用站点根目录中的 SVC 文件。但是,API 子文件夹中的 SVC 文件现在返回:

<Error>
    <Message>
     No HTTP resource was found that matches the request URI 'http://mysite/API/myservice.svc/DoCommand'.
    </Message>
</Error>

如果我不包括 DoCommand,那么我会得到标准的 WCF 信息屏幕。

哦,最后,这只发生在 prod 中——在开发中,与 localhost 对抗,一切正常。

非常感谢您的帮助。谢谢。

4

2 回答 2

2

答案就在这里MVC4 上的服务堆栈

问题是我的子文件夹称为 Api,它与随 MVC 一起安装的 WebApi 基础设施附带的 Api 命名冲突。

于 2012-11-19T23:13:31.263 回答
0

您是否尝试过relaxedUrlToFileSystemMapping="true"按照Phil Haackweb.config的详细说明进行设置。请参阅此相关问题:ApiController 在 ID 包含句点时返回 404

于 2012-11-19T20:56:22.053 回答