WebServiceHostFactory 및 IIS 인증


11

IIS에서 WebServiceHostFactory를 사용하는 데 문제가 있습니다.

"IIS가 지정한 인증 체계 인 'IntegratedWindowsAuthentication, Anonymous'는 바인딩이 정확히 하나의 인증 구성표 만 지원합니다. 유효한 인증 구성은 다이제스트, 협상, NTLM, 기본 또는 익명입니다. 단일 인증 방식이 사용됩니다. "

I wanted to keep both authentication schemes and managed to do so by not using the factory but setting up the endpoint manualy in web.config.

내 질문은 WebServiceHostFactory이이 결과를 얻기 위해 무엇을하고 있는지입니까? WebServiceHostFactory가 내 구성에서 사용한 것과 동일한 webHttpBinding에 대한 바인딩을 설정한다는 인상하에있었습니다.

편집 : 나는 반사경의 WebServiceHostFactory를 살펴 봤지만 영리하지 못합니다. WebServiceHost의 단순한 팩토리 일뿐입니다.

config에서 끝점을 설정하면 IIS가 서비스 호스트를 계속 사용합니까? 또는 WebServiceHost가 상황을 다르게 설정합니다.

3

이것이 저에게 효과적입니다. 아래에 표시된 것처럼 더미 끝점을 (서비스 호스트가 열리기 전에) 초기에 추가하는 것이 트릭을 완료 한 것으로 보입니다. (이 MSDN의 문서에서는이 http://msdn.microsoft.com/en-us/library/bb412178.aspx 암시.) 나는이 기본 엔드 포인트를 작성, 따라서 기능의 무리를 종료에서 WebServiceHost을 방지 같은데요

public class MyWebServiceHost : WebServiceHost 
{ 
    public MyWebServiceHost (Type serviceType, params Uri[] baseAddresses) : base(serviceType, baseAddresses) 
    { 
     //Inserting this dummy endpoint config seemingly does the trick: 
     AddServiceEndpoint(typeof(IMyContract), new WebHttpBinding(), string.Empty); 
    } 

    protected override void ApplyConfiguration() 
    { 
     //Typical programmatic configuration here per: 
     //http://msdn.microsoft.com/en-us/library/aa395224.aspx 
    } 
} 

. web.config-에서

  0

잠시 전에 질문을 받았기 때문에이 답변을 테스트 할 수 없었습니다. 문제가 해결되면 새로운 일자리가 생겼지 만 제대로 작동한다고 말하면 충분히 만족 스럽습니다. 10 jun. 112011-06-10 16:06:57

  0

나는 MyWebServiceHost를 어디에서 참조해야하는지 이해하지 못한다. 27 mar. 122012-03-27 07:22:25

  0

나는 똑같은 문제를 겪었으므로 그것을 작동시킬 수 있었다. MyWebServiceHostFactory와 MyWebServiceHost 클래스의 두 클래스를 작성해야했습니다. 팩토리 클래스에서, 나는'ServiceHost CreateServiceHost (Type serviceType, Uri [] baseAddresses)'메소드를 오버라이드하고'MyWebServiceHost'의 인스턴스를 리턴 시켰습니다. 'MyWebServiceHost'는이 대답과 비슷하지만'ApplyConfiguration()'을 오버라이드하지 않았습니다. 11 jul. 122012-07-11 17:46:51


1

WebServiceHostFactory에 대해 잘 모르겠지만 IIS 내부에서 서비스를 호스팅하고있는 것처럼 들리며 둘 이상의 인증 방법이 선택되었습니다. IIS 5 또는 6이있는 경우 IIS로 이동하여 서비스가 포함 된 웹 사이트 또는 가상 디렉터리의 속성을 확인하십시오. 디렉터리 보안 탭으로 이동하여 "익명 액세스 및 인증 제어"아래의 편집 단추를 클릭 한 다음 "익명 액세스"또는 "Windows 통합 인증"선택을 취소하십시오. 나는 IIS7에 대해 잘 모르겠습니다.

+1

문제는 다음 **를 디버깅 할 수 없다는 것입니다 필요가 없습니다 익명으로 액세스 한 ** 웹 사이트. ** 만족스럽지 않은 ** 해결 방법은 IIS에서 다른 하나를 전환하기 전에 디버깅하기 직전에 단일 인증으로 컴파일하는 것입니다. 이것은 효과가 있지만 시간 낭비와 성가심입니다. 나는이 문제가 발생하지 않고 수년간 개발 된 .NET 3.5 사이트를 보았습니다. .NET 4 사이트에서는 내 경험이 더욱 악화되었습니다. _ (MSBuild 파일에서 웹 사이트 인증을 변경할 가능성이 있지만 그렇게 할 수있는 준비된 작업을 찾을 수 없습니다.) _ 29 sep. 112011-09-29 02:25:47

  0

저를위한 속임수였습니다. 13 feb. 122012-02-13 16:01:36

+1

죄송합니다.하지만 두 가지 인증 체계를 모두 유지하고 싶다고 말했습니다 ... 그 대답은 도움이되지 못했습니다. 01 mar. 122012-03-01 15:32:11


1

IIS7에서 Windows 통합 인증 설정을 관리 할 수있는 위치를 찾을 수 없습니다. IIS7 관리 콘솔의 설정을 보려면 다음 문서에서 설명하는 단계를 수행해야합니다. http://msdn.microsoft.com/en-us/library/x8a5axew.aspx (링크가 작동하지 않는 경우 "통합 Windows 인증이 사용되지 않기 때문에 오류 : 디버깅 실패"라는 제목).

희망이 있습니다.


-1

해제 보안> 구성 태그

<system.serviceModel> 
    <bindings> 
     <webHttpBinding> 
     <binding> 
      <security mode="None"> 
      <transport clientCredentialType="Windows"/> 
      </security> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    </system.serviceModel> 

다음 WCF 서비스는 인증 ... 그와

  0

이것은 단지 몇 가지 코드입니다 ... 몇 가지 설명을하십시오. 질문에 대한 답변이 아닙니다. 17 feb. 132013-02-17 12:12:46

  0

답변을 제공 할 때는 실제로 코드 샘플이 아닌 몇 가지 설명 형식을 제공해야합니다. 17 feb. 132013-02-17 12:13:05