Я хотел бы включить атрибут scope="request"
в моей конфигурации xml:
<object id="IDataAccess" type="Dal.DataAccess, Dal" scope="request">
Моя служба WCF размещена на IIS, и я использую RouteTable
и ServiceHostFactory
для создания своей службы:
static void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add(new ServiceRoute("url", serviceHostFactory, typeof(MyService)));
}
Я добавил WebContextHandler
в свой web.config
, чтобы включить область действия request
и session
, как описано здесь http://www.springframework.net/doc-latest/reference/html/web.htm (раздел 22.3.1)
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
</sectionGroup>
И httpModules
вещь:
<system.web>
<httpHandlers>
<add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
</httpHandlers>
<httpModules>
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</httpModules>
</system.web>
И поскольку я нахожусь в окне 7, фреймворк Net 4.0 я также добавил:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
</modules>
</system.webServer>
Я сделал все это. и это не работает, у меня все еще есть:
Resource handler for the 'web' protocol is not defined.
когда он звонит:
SpringContext = (IApplicationContext)ConfigurationManager.GetSection("spring/context");
Не знаю, что мне теперь делать, может ли кто-нибудь из сообщества Spring.net помочь мне. Не похоже, что я пытаюсь сделать что-то хитрое или хакерское. Это общая схема размещения службы WCF в IIS.
EDIT
Я пытался с
<add verb="*" path="*" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
, как предлагается в комментариях, и это не работает.