我目前正在开发一个MVC项目。它依赖于需要在设定的时间间隔内运行和执行任务的服务。这个WCF服务项目是一个单独的项目,我已将它集成到我的MVC项目中。
直到这里,事情对我来说很好,但问题出现在WCF服务应用程序中,现在我需要调用我的MVC项目控制器类的action方法。我尝试过的一种方法是添加对我的MVC项目的引用,然后尝试访问action方法,但它给出了如下错误:
类型' System.Web.Mvc.Controller'在未引用的程序集中定义。您必须添加对程序集的引用,System.Web.Mvc,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'
我想知道我的方法是否正确,如果是,如何摆脱这个错误。
如果没有,我该怎么做才能解决我的问题。
答案 0 :(得分:1)
你必须将它们视为单独的网站,wcf服务不会只是实例化一个控制器并运行它,更多的是它会创建一个webrequest并对它进行获取或发布。
您可以利用System.Net.WebClient类来执行此操作。
您需要做的就是决定是否要从mvc网站发布或获取一些数据,然后使用webclient类中的一种方法来完成它。
http://msdn.microsoft.com/en-us/library/system.net.webclient(v=vs.100).aspx
这将详细介绍webclient类以及如何使用它。您可能需要在wcf服务上使用appsetting条目指向要调用的mvc站点,不应该复杂