我正在尝试让 Castle Windsor 使用 WcfFacility 创建我的 WCF。我按照本教程进行操作。http://www.codeproject.com/Articles/426770/Dependency-Injection-in-WCF-using-Castle-Windsor但它似乎对我不起作用。我收到以下错误。
找不到名称为 ActionService.ServiceImplementations.ActionWebService 的组件,您忘记注册了吗?
我的应用程序的结构方式如下。
一个 web 服务项目(只有 svc 文件,没有代码,web.config 和 global.asax)
合同和实施的第二个项目。这是 IActionWebService 和 ActionWebservice 所在的位置。
我有后者的参考到第一个。
这是我的全球 asax。
public class Global : System.Web.HttpApplication
{
IWindsorContainer container;
protected void Application_Start(object sender, EventArgs e)
{
container = new WindsorContainer();
container.AddFacility<WcfFacility>()
.Register(
Component.For<IAuthService>().ImplementedBy<AuthService>(),
Component.For<IUserRepository>().ImplementedBy<UserRepository>(),
Component.For<IActionWebService>().ImplementedBy<ActionWebService>().Named("ActionWebService")
);
}
这是我的 svc 文件。
<%@ ServiceHost
Language="C#"
Debug="true"
Service="ActionService.ServiceImplementations.ActionWebService"
Factory="Castle.Facilities.WcfIntegration.DefaultServiceHostFactory, Castle.Facilities.WcfIntegration" %>
我已经在这里和其他博客中解决了其他问题,但他们的解决方案对我没有任何帮助:(。
任何人都可以指出错误可能发生在哪里?
编辑我附加了一个监视窗口捕获。在那里您可以看到所有对象似乎都已加载。但这并不能解决它们。