Я уверен, что WCF на IIS - это специализация ASP.NET. Он не заменяет ASP.NET, он расширяет его. Таким образом, ваш проект службы WCF также может включать содержимое ASP.NET - файлы .aspx
и .asax
вместе с файлами .svc
. Таким образом, должна быть возможность буквально просто использовать Global.asax
в вашем проекте WCF и использовать обычный метод Application_Start
. Следует иметь в виду, что приложение ASP.NET инициализируется при запуске пула приложений и разрушается при остановке пула приложений. Таким образом, Application_Start
не будет работать до тех пор, пока не поступит первый запрос, который согревает пул приложений, а затем, если пул приложений простаивает достаточно долго, IIS избавится от него, и в следующий раз будет создан новый. запрос приходит, получая свое Application_Start
событие.
Я только что проверил это явным образом и могу подтвердить, что события Global
запускаются. Application_Start
запускается как при загрузке страницы .aspx
, так и при загрузке страницы .svc
для ее представления метаданных. Любопытно, что ASP.NET создает два отдельных экземпляра Global
. Первый экземпляр получает only событие Application_Start
, а второй экземпляр получает все другие события.
Если вы не используете IIS для размещения службы WCF, то все это не применимо.