Asp.net mvc 在MVC中调用WCF服务时未找到HTTP资源

Asp.net mvc 在MVC中调用WCF服务时未找到HTTP资源,asp.net-mvc,wcf,asp.net-mvc-4,Asp.net Mvc,Wcf,Asp.net Mvc 4,我正在将旧的非MVC代码集成到MVC4项目中。旧代码的根目录和受基本身份验证约束的API子文件夹中有WCF服务,扩展名为.SVC 起初,诸如(http://mysite/myservice.svc/DoCommand)所有SVC文件都有404个错误。然后我补充说: routes.IgnoreRoute(“{allsvc}”,新的{allsvc=@..svc(/.*)”}) 现在可以调用站点根目录中的SVC文件。但是,API子文件夹中的SVC文件现在返回以下内容: <Error>

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

起初,诸如(http://mysite/myservice.svc/DoCommand)所有SVC文件都有404个错误。然后我补充说:

routes.IgnoreRoute(“{allsvc}”,新的{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>

未找到与请求URI名称匹配的HTTP资源http://mysite/API/myservice.svc/DoCommand'.
如果我没有包括DoCommand,那么我会得到标准的WCF信息屏幕

哦,最后,这只发生在prod中——在开发中,与localhost相反,一切都很好


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

您是否尝试过在您的
web.config
中设置
relaxedUrlToFileSystemMapping=“true”
,如中所述。请参阅此相关问题:

答案在这里


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

不起作用。作品不起作用,所以这是一种路由问题。这就是它变得混乱的地方。在RouteConfig.cs中,我有routes.IgnoreRoute(“{allsvc}”,new{allsvc=@.*\.svc(/)?”});,所以我想MVC会忽略对SVC文件的所有请求。那么,MVC之外的哪一段配置路由到SVC文件呢?我不知道在哪里可以找到它。