카테고리

분류 전체보기 (510)
문학 (128)
찬양 콘티(Continuity) (80)
Business as heritage (6)
IT . Web (149)
Photo (127)
etc. (20)
Total348,447
Today36
Yesterday147
*20121219 국치가 회복될 사건이 올 때까지 블로그 양쪽은 조의를 표하는 검정색입니다.
Tistory 로고 이미지 티스토리 가입하기!









블로그 이미지

C#, Silverlight 4, WCF Ria Service, ADO.NET Entity Framework 기술을 조합해서 스마트 클라이언트 애플리케이션을 개발할 때 DBMS를 MS SQL Server 제품군 중 고를 수 있다면 좋겠지만, 고객사의 여건에 따라 Oracle 9i나 10g를 써야 하는 경우도 있습니다.


아마도 ODAC이 10.2나 11.2 하나만 설치되어 있으면 발생하지 않는 문제인 것 같은데, 제 경우 Windows 2008 Server R2에 10.2를 먼저 설치하고 이어서 11.2까지 설치했더니, IIS에 배포한 실버라이트 애플리케이션이 서비스 리스너를 생성하지 못하는 문제가 발생했습니다. 더군다나 아래 메시지는 매우 다양한 경우에 최상위에 드러나는 예외 메시지여서, 실제 이 메시지의 내용이 궁극적 이유는 아니었습니다.


EDMX-FILE-NAME.ssdl(2, *) : error 0175: The specified store provider cannot be found in the configuration, or is not valid.


위 메시지의 요지는 edmx 파일 빌드 시 생성되는 ssdl 파일의 2행에 선언된 ProviderManifestToken 속성이 잘못되었다는 것인데, 실제로는 사용하려는 Oracle.DataAccess.dll 특정 버전을 웹사이트 프로젝트가 배포될 때 bin에 함께 담기게 설정하고(DLL Reference 속성에서 Copy Local을 True로) Web.Config에 정확한 버전을 명시해주면 되는 문제였습니다.


제 경우에는 system.web 아래 


<compilation debug="true" targetFramework="4.0">

<assemblies>

<add assembly="Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89B483F429C47342" />

</assemblies>

</compilation>


를 넣고,


system.data 아래


<DbProviderFactories>

<add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342"/>

</DbProviderFactories>


를 선언했더니 문제가 해결되었습니다.


아래는 예외 전문입니다.


WebHost failed to process a request.

 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/45653674

 Exception: System.ServiceModel.ServiceActivationException: The service '/Services/DOMAIN-SERVICE-NAME.svc' cannot be activated due to an exception during compilation.  The exception message is: Schema specified is not valid. Errors: 

EDMX-FILE-NAME.ssdl(2,85) : error 0175: The specified store provider cannot be found in the configuration, or is not valid.. ---> System.Data.MetadataException: Schema specified is not valid. Errors: 

EDMX-FILE-NAME.ssdl(2,85) : error 0175: The specified store provider cannot be found in the configuration, or is not valid.

   at System.Data.Metadata.Edm.StoreItemCollection.Loader.ThrowOnNonWarningErrors()

   at System.Data.Metadata.Edm.StoreItemCollection.Loader.LoadItems(IEnumerable`1 xmlReaders, IEnumerable`1 sourceFilePaths)

   at System.Data.Metadata.Edm.StoreItemCollection.Init(IEnumerable`1 xmlReaders, IEnumerable`1 filePaths, Boolean throwOnError, DbProviderManifest& providerManifest, DbProviderFactory& providerFactory, String& providerManifestToken, Memoizer`2& cachedCTypeFunction)

   at System.Data.Metadata.Edm.StoreItemCollection..ctor(String[] filePaths)

   at System.Data.Mapping.MetadataWorkspaceUtilities.CreateMetadataWorkspaceFromResources(Type contextType, Type baseContextType)

   at System.Data.Mapping.MetadataWorkspaceUtilities.CreateMetadataWorkspace(Type contextType)

   at System.ServiceModel.DomainServices.EntityFramework.LinqToEntitiesDomainServiceDescriptionProvider.LookupIsEntityType(Type type)

   at System.ServiceModel.DomainServices.Server.DomainServiceDescription.<>c__DisplayClass14.<>c__DisplayClass16.<CreateDescriptionProvider>b__13(DomainServiceDescriptionProvider p)

   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)

   at System.ServiceModel.DomainServices.Server.DomainServiceDescription.<>c__DisplayClass14.<CreateDescriptionProvider>b__12(Type t)

   at System.ServiceModel.DomainServices.Server.DomainServiceDescriptionProvider.IsEntityType(Type type)

   at System.ServiceModel.DomainServices.Server.ReflectionDomainServiceDescriptionProvider.IsQueryMethod(DomainOperationEntry operation)

   at System.ServiceModel.DomainServices.Server.ReflectionDomainServiceDescriptionProvider.TryClassifyImplicitDomainOperation(ReflectionDomainOperationEntry operation)

   at System.ServiceModel.DomainServices.Server.ReflectionDomainServiceDescriptionProvider.ClassifyDomainOperation(ReflectionDomainOperationEntry operation)

   at System.ServiceModel.DomainServices.Server.ReflectionDomainServiceDescriptionProvider.GetDescription()

   at System.ServiceModel.DomainServices.Server.DomainServiceDescriptionProvider.GetDescription()

   at System.ServiceModel.DomainServices.Server.DomainServiceDescription.CreateDescription(Type domainServiceType)

   at System.ServiceModel.DomainServices.Server.DomainServiceDescription.<>c__DisplayClass10.<GetDescription>b__f(Type type)

   at System.Collections.Concurrent.ConcurrentDictionary`2.GetOrAdd(TKey key, Func`2 valueFactory)

   at System.ServiceModel.DomainServices.Server.DomainServiceDescription.GetDescription(Type domainServiceType)

   at System.ServiceModel.DomainServices.Hosting.DomainServiceHost..ctor(Type domainServiceType, Uri[] baseAddresses)

   at System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory.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)

   --- End of inner exception stack trace ---

   at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

   at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)

 Process Name: w3wp

 Process ID: 2884

저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by One of Remnants

댓글을 달아 주세요

달력

« » 2017.08
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

최근에 받은 트랙백

글 보관함

티스토리 툴바