У нас есть web.config в физическом подкаталоге виртуального каталога, который находится в приложении на сайте IIS. Примерно так:
В файле Web.config мы помещаем эту конфигурацию в system.web:
<webServices>
<protocols>
<add name="HttpPost" />
<add name="HttpGet" />
</protocols>
</webServices>
Мы включаем оба протокола для ASMX в этом подкаталоге.
Некоторое время все работает нормально, а затем просто останавливается, и эти протоколы просто перестают работать. Мы перезапускаем IIS, и он снова начинает работать.
Чтобы исправить это, мы использовали обходной путь, чтобы добавить эту конфигурацию в приложение Web.config, и тогда она просто отлично работает. Но мы хотели бы избежать изменения приложения Web.config и вместо этого заставить подкаталог Web.config работать.
Есть идеи, почему ASP.Net через некоторое время просто перестанет рассматривать подкаталог Web.config?
Мы размещаемся на Windows Server 2003, IIS 6, ASP.Net 2.0.
HTTP-запросы POST к ASMX перестают работать. Мы получаем ошибку System.InvalidOperationException с этим сообщением:
Формат запроса не распознается для URL, неожиданно заканчивающегося на «/blah» .
Трассировка стека:
at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)
at System.Web.Services.Protocols.WebServiceHandlerFactory.GetHandler(HttpContext context, String verb, String url, String filePath)
at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)