2013-09-11 4 views
1

Это образец часть из web.config:Как добавить новый элемент в system.webServer/обработчиков программно в ASP.NET

<system.webServer> 
<validation validateIntegratedModeConfiguration="false" /> 

<handlers> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
    <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
    <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
</handlers> 
</system.webServer> 

Могу ли я добавить новый обработчик это программно отображается при запуске веб-приложений (может быть, где-то в global.asax?).

Я хочу добавить что-то вроде этого:

<add name="AbpDynamicServiceProxyhandler" path="api/serviceproxies/*.js" verb="GET" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 

Но я хочу, чтобы добавить его, когда приложение, начиная с тех пор она нужна для библиотеки я разрабатываю, и я не хочу, чтобы заставить пользователя, чтобы добавить эту строку вручную.

ПРИМЕЧАНИЕ: Я не хочу открывать web.config и добавлять линию программно. Я хочу сделать тот же эффект с кодом при запуске без изменения web.config приложения.

+0

Это не модуль, где вам после того, как: http://msdn.microsoft.com/en-us /library/system.web.httpapplication.registermodule.aspx? – rene

+0

@rene, я не понимал, что вы имели в виду? Разве это невозможно? Потому что, если я добавлю эту строку в web.config, она будет работать так, как я ожидал. – hikalkan

+0

Я всегда теряюсь, когда идет проводник и куда идет модуль. Эта ссылка указывает на метод, доступный для регистрации модуля, который кажется новым в .net 4.5. Нет RegisterHandler, AFAIK. Самое близкое, что вы можете получить, я думаю, описано [здесь] (http://www.iis.net/configreference/system.webserver/handlers), которое уже отклонено вами как опция. – rene

ответ

-1

ли это поможет вам:

http://www.iis.net/configreference/system.webserver/handlers

Он содержит программные и командные строки примеры

+0

Обратите внимание, что речь идет о добавлении обработчиков «на лету» в память *, например, при запуске приложения. Ваши примеры касаются регистрации их один раз через API веб-администрирования, это совсем другое. –