Я написал веб-приложение ASP.Net с настраиваемым обработчиком HTTP. Тем не менее, после импорта приложения в IIS 7.5, IIS возвращает это, когда приложение запускается:Как отключить или удалить DirectoryListingModule в IIS, чтобы предотвратить ошибку HTTP 405
HTTP/1.1 405 Method Not Allowed
Когда я включаю Failed Request Tracing правил имеют улавливать HTTP 405 ошибок я вижу это:
Мой обработчик не вызывается. Поэтому я хотел бы удалить DirectoryListingModule. Но, подобно @Brendan Hill here, ничего, что я пробовал, похоже, отключает модуль. Даже закомментировать все строки, в которых упоминается этот модуль в C: \ Windows \ System32 \ Inetsrv \ Config \ applicationHost.config не работает:
<!--add name="DirectoryListingModule" image="%windir%\System32\inetsrv\dirlist.dll" /-->
<!--add name="DirectoryListingModule" lockItem="true" /-->
<!--add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /-->
Как @Brendan Hill Я предпочел бы решение в Интернете моего приложения .config, поэтому мне не нужно возиться с настройками IIS. Отрывок из моей текущей Web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
<handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="AuthServiceHandler"
path="*."
verb="*"
type="AuthServiceHTTPHandler.App_Code.AuthServiceHandler"
preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
Если я импортировать мое приложение в Default Web Site в IIS и привязать его к 9000, я могу вызвать приложение с запросом POST к http://localhost:9000. Этот URL-адрес прекрасен; Я не пытаюсь запрашивать какие-либо веб-страницы.