У меня очень простая служба отдыха WCF
[ServiceContract]
[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
public class TestService
{
[Description("Test Description.")]
[WebGet(UriTemplate = "go")]
public string Test()
{
return "hi2u";
}
}
Это настраивается в веб-конфигурации следующим образом:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name=""
helpEnabled="true"
automaticFormatSelectionEnabled="false"
defaultOutgoingResponseFormat="Json"
crossDomainScriptAccessEnabled="true" />
</webHttpEndpoint>
</standardEndpoints></system.serviceModel>
Затем маршрут связан с global.asax
Проблема в том, что если я аутентифицируюсь в приложении, используя аутентификацию по формам, то каждый раз, когда я перестраиваю решение и пытаюсь перейти к сервису, сервис ломается со страшной страницей Ошибка запроса. Если я выйду из системы и перезапущу приложение, оно будет работать нормально. В какой-то момент я буду использовать принципала потока, поэтому мне было интересно, как разрешить моему пользователю проходить проверку подлинности с помощью проверки подлинности с помощью форм при одновременном обращении к службе?