4

이것은 IIS7.5 64 비트에서 실행되는 .Net 3.5 SP1과 관련된 문제입니다 (32 비트를 강제 실행했지만 동일한 결과가 나타남).WCF 및 사용자 지정 ASP.NET 멤버 자격 공급자에서 '기본 멤버 자격 공급자를 찾을 수 없습니다'오류를 어떻게 디버깅 할 수 있습니까?

인증 서비스를 사용하려는 WCF 서비스가 있습니다. 아무런 동작이 없으면 WCF 서비스는 아무런 오류없이 페인트합니다 (답장). 기타 서비스는 서비스가 불면 ... 최대한 빨리 서비스에 대한 인증을위한 사용자 정의는 MembershipProvider를 지정 동작에 userNameAuthentication를 추가로 다른 행동

을 함께

<serviceCredentials> 
    <!-- Configure user name authentication to use the Membership Provider --> 
    <userNameAuthentication userNamePasswordValidationMode ="MembershipProvider" 
          membershipProviderName ="MembershipService"/> 
    </serviceCredentials> 

일을 다음과 같은 오류를 반환합니다

WebHost failed to process a request. 
Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/59884855 
Exception: System.ServiceModel.ServiceActivationException: The service '/V4Service.svc' cannot be activated due to an exception during compilation. The exception message is: Default Membership Provider could not be found. (C:\Code\SmartTrade Projects\SmartTrade.API\Web\SmartTrade.API\web.config line 50). ---> System.Configuration.ConfigurationErrorsException: Default Membership Provider could not be found. (C:\Code\SmartTrade Projects\SmartTrade.API\Web\SmartTrade.API\web.config line 50) 
at System.Web.Security.Membership.Initialize() 
at System.Web.Security.Membership.get_Providers() 
at System.ServiceModel.Configuration.UserNameServiceElement.ApplyConfiguration(UserNamePasswordServiceCredential userName) 
at System.ServiceModel.Configuration.ServiceCredentialsElement.ApplyConfiguration(ServiceCredentials behavior) 
at System.ServiceModel.Configuration.ServiceCredentialsElement.CreateBehavior() 
at System.ServiceModel.Description.ConfigLoader.LoadBehaviors[T](ServiceModelExtensionCollectionElement`1 behaviorElement, KeyedByTypeCollection`1 behaviors, Boolean commonBehaviors) 
at System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase host, ServiceDescription description, ServiceElement serviceElement, Action`1 addBaseAddress) 
at System.ServiceModel.ServiceHostBase.ApplyConfiguration() 
at System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses) 
at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses) 
at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses) 
at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses) 
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath) 
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath) 
at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath) 
,691,363 :
Parser Error Message: Default Membership Provider could not be found. 
Source Error: 
Line 49:  </authentication> 
Line 50:  
Line 51:  <membership defaultProvider="MembershipService" userIsOnlineTimeWindow="15"> 
Line 52:  <providers> 
Line 53:   <clear/> 

이벤트 로그이 오류가210

나는 ASP MVC 사이트에서 작업하는이 사용자 지정 공급자를 가지고 있기 때문에 공급자 또는 공급자 구성에 문제가 없다고 확신합니다.

의견이 있으십니까?

답변

2

나는 모든 오버라이드가 올바르게 반환되는지 확인하기 위해 처음부터 새로운 사용자 지정 공급자 구현을 시작했습니다. 내가 생각한 원래의 작품 (몇 달 전)은 더 이상 효과가 없다는 것이 밝혀졌습니다.

올바른 공급자 이름과 사용자 지정 공급자 구현을 떠나는 구성에서 올바른 형식 인 경우가 나타납니다.

이 문제가 발생하고 구성이 올바른 것으로 확신하는 경우 간단한 ASP.net 또는 ASP.net MVC 웹 사이트로 구현을 확인하십시오.

+0

사용자 지정 공급자가 작동하지 않는 것은 무엇입니까? 나는이 문제를 겪고있다. .config 파일에서 형식 및 어셈블리 이름이 올바르게 세 번 확인되었지만이 오류가 발생합니다. 어셈블리를 사용할 수없는 종속성 같은 일부 환경 문제로드로 인해로드가 실패한 퓨전 로그를 확인해야한다고 생각합니다. –

+0

사용자 지정 MembershipProvider 클래스가 생성자에 대한 호출에서 실패했지만 "기본 멤버 자격 공급자를 찾을 수 없습니다."오류가 발생했습니다. – JTew

1

이 오류가있어서 결국 숨겨진 UTF8 또는 유니 코드 문자가 내 web.config 파일에 들어 있다는 것을 발견했습니다. 응용 프로그램 문자열 섹션이 손상되었다는 것을 알기 위해 섹션을 삭제해야했습니다.

이전 버전에서 교체하면 다시 작동합니다. 끈의 일부는 용의자 인 여분의 공백을 가지고있었습니다. 잘라 내기 및 붙여 넣기에서 비롯된 것일 수 있는지 확실하지 않습니다. 16 진수 편집기를 사용하여 web.config 파일을 볼 수도 있습니다.

1

나는이 같은 문제를 안고 거의 일주일을 알아 냈다. 내 문제는 Name 속성을 web.config 공급자 이름과 동일한 값으로 설정해야한다는 것이 었습니다. 가장 간단한 솔루션을 찾기가 어려울 때 나는 그것을 싫어한다!

관련 문제