【发布时间】:2011-06-08 13:08:53
【问题描述】:
我想在 Microsoft IIS(IIS 托管)上托管我的 WCF 服务。
为此,我创建了我的服务:
// The service
public class MyService : IMyService {
// Ctors
public MyService() {
// Def ctor: I don't want to call it
}
public MyService(...) : this() {
// Parametric ctor, I want to call it!
}
...
}
// The contract
[ServiceContract]
public interface IMyService {
...
}
我创建了一个 svc 文件(为我的服务提供基地址的好方法):
<@ServiceHost Service="MyService" @>
但是这样做,当托管我的服务时(只需在 IIS 中创建一个虚拟目录,指向我的应用程序所在的文件夹,通常是项目目录),IIS 将调用默认构造函数。
如何让 IIS 调用不同的构造函数?
PS:我知道可以指定HostServiceFactory。我应该在这里使用它吗?它给了我工厂和主机。对于主机,我无法对主机传递的参数进行操作。但是,我该如何解决这个问题呢?
注意:我知道许多解决方案都基于 Inversion of control (IoC) 和几个 IoC 框架,例如 Unity、Castle Project 和 Spring.NET。但是我根本不会真正使用它们。 WCF 可以自己做吗?我不能接受 WCF 不能让程序员通过以适当的方式构建服务来托管服务......
【问题讨论】:
标签: c# .net wcf web-services iis