Запрет HttpHandler от обработки запросов WCF - PullRequest
4 голосов
/ 31 января 2011

У меня есть веб-сайт, на котором размещена служба WCF и HttpHandler. Когда я включаю aspNetCompatibilityEnabled, HttpHandler начинает собирать мои запросы WCF. Я не думаю, что это может произойти, потому что он имеет расширение .svc и обработчики не настроены для обработки файлов .svc. Обработчик зарегистрирован так:

<system.webServer>
<handlers>
  <add name="TTPDeploy" path="*.deploy" verb="*" type="ServiceHost.DeploymentHandler" resourceType="Unspecified" preCondition="integratedMode" />
  <add name="TTPManifest" path="*.manifest" verb="*" type="ServiceHost.DeploymentHandler" resourceType="Unspecified" preCondition="integratedMode" />
  <add name="TTPApplication" path="*.application" verb="*" type="ServiceHost.DeploymentHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode" />
</handlers>
</system.webServer>

Я уверен, что это просто потому, что я чего-то не понимаю в WCF и HttpHandlers. Мысли? * * 1004


Обновление

Я решил проблему другим способом. Поскольку я не мог заставить мои запросы WCF работать, когда для aspNetCompatibilityEnabled установлено значение true, я вернул его обратно в значение false.

Моя основная проблема заключалась в том, что мне нужно было получить физический путь к файлу из моей сети с помощью вызова WCF. Я нашел другой пост (который я не могу найти сейчас), в котором говорится, что при использовании WCF для получения физического пути к приложению вы должны использовать HostingEnvironment.ApplicationPhysicalPath. Это гораздо более прямой подход к проблеме, но он все еще не отвечает на этот вопрос.

Почему мой обработчик принимает мои запросы WCF, если он не зарегистрирован в файлах .svc?

1 Ответ

0 голосов
/ 01 февраля 2011

IIS принимает запрос из-за некоторой конфигурации, возможно, находится в machine.config.

Чтобы разрешить запросу попасть в ваш обработчик, добавьте в файл web.config следующее:

<compilation>     
 <buildProviders>         
  <remove extension=".svc" />     
 </buildProviders> 
</compilation> 
...