Tag:

如何为没有SVC文件的自托管WCF服务指定ServiceHostFactory

我的应用程序作为Windows服务运行。 它使用以下帮助器方法动态创建WCF服务: public static void StartWebService(string webServiceName, Type serviceContractType, Type serviceImplementationType) { if (string.IsNullOrEmpty(webServiceName)) return; var baseAddress = GetWebServiceAddress(webServiceName); var baseUri = new Uri(baseAddress); lock (RunningWebServices) { if (RunningWebServices.ContainsKey(webServiceName)) return; var webServiceHost = new ServiceHost(serviceImplementationType, baseUri); var serviceBehaviour = new ServiceMetadataBehavior() { HttpGetEnabled = true }; webServiceHost.Description.Behaviors.Add(serviceBehaviour); webServiceHost.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), “mex”); var httpBinding = new BasicHttpBinding(); […]

使用WAS将Autofac与WCF服务一起使用

我喜欢通过在配置文件中设置serviceActivations来托管没有.svc文件的服务的WCF 4.0function。 它使用默认服务工厂工作得很好但现在我正在尝试使用AutofaServiceHostFactory执行相同操作,因此我的依赖项将被正确注入。 在我尝试的所有场景中,当我尝试访问服务时仍然遇到此错误: 为WCF配置的服务“WCFAutofacWiring.MyService”未向Autofac容器注册 。 我在一个空的asp.net网站上托管我的服务。 这是我做的: Web.config: 然后,我在app_code文件夹中放置一个文件来注册我的依赖关系,如Autofac文档( Autofac WcfIntegration )中所述,我向调试器确认在服务启动时调用了代码: public static class AppStart { public static void AppInitialize() { AutofacHostFactory.Container = new AutofacBootstrapper().Configure(); } } 最后,这是我的注册: public class AutofacBootstrapper { public IContainer Configure() { var builder = new ContainerBuilder(); // register types builder.Register(x => new MyLanguageProvider(“en-US”)); builder.RegisterType(); return builder.Build(); } } […]