WCF:System.ServiceModel.ServiceActivationException: The service '/DataService.svc' cannot be activated due to an exception during compilation

11344 단어 exception
wcf 서비스, 로컬 테스트, 원격 배치는 전혀 문제없습니다.그러나 일정 시간 실행 후 WCF에 오류가 발생하여 페이지 데이터가 표시되지 않습니다.
처음 나타났을 때 데이터가 돌아오지 않았는지 바로 생각했습니다. 패키지를 캡처해서 볼 때 json 형식의 데이터가 돌아왔습니다.이것이 어떻게 표시되지 않을 수 있겠는가. 데이터를 비교한 결과 그 중 일부 데이터에 줄 바꿈 현상이 있음을 발견하고 데이터를 하나하나 읽어 줄 바꿈 데이터가 과연 읽을 수 없을 것이다.처리하고 지금까지 운행하는 것은 아무런 문제가 없다.
두 번째 다른 고객도 이 문제를 반영했다. 당시에 나는 데이터를 말할 때 왜 판단을 하지 않느냐고 불평했다. 동료에게 디스플레이 데이터를 한 번 여과하라고 했다. 지난번처럼 해결할 수 있을 거라고 생각했다.그러나 문제가 생겼지만 여전히 해결할 수 없다.Firebug에서 WCF 서비스를 찾을 수 없음을 알렸습니다.구글은 WCF 설정 문제를 한바탕 이야기했다.한 번 재배치했으니 과연 괜찮다.득의양양할 때 문제가 하나 발견되었는데, 단지 내가 열었을 뿐이다.svc 파일의 그 서비스가 끝났습니다. 열리지 않았습니다.svc 파일은 모두 안 되지만 config에 설정되어 있습니다.이것은 나로 하여금 설정 문제가 아니라는 것을 깨닫게 한다.
갑자기 시스템 로그에 힌트가 있는지 신기하게 보았다.과연 다음과 같은 오류가 있습니다.
 :          Application
 :            System.ServiceModel 4.0.0.0
 :            2013/9/23 9:57:47
  ID:         3
 :          (5)
 :             
 :            
 :            NETWORK SERVICE
 :           qyyngp
 :
WebHost failed to process a request.
 Sender Information: System.ServiceModel.ServiceHostingEnvironment+HostingManager/37175364
 Exception: System.ServiceModel.ServiceActivationException: The service '/DataService.svc' cannot be activated due to an exception during compilation.  The exception message is: Could not load file or assembly 'App_Web_ljypiyuh, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.  。. ---> System.IO.FileNotFoundException: Could not load file or assembly 'App_Web_ljypiyuh, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.  。
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
   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: 5620  Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="System.ServiceModel 4.0.0.0" />
    <EventID Qualifiers="49154">3</EventID>
    <Level>2</Level>
    <Task>5</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2013-09-23T01:57:47.000Z" />
    <EventRecordID>8471</EventRecordID>
    <Channel>Application</Channel>
    <Computer>qyyngp</Computer>
    <Security UserID="S-1-5-20" />
  </System>
  <EventData>
    <Data>System.ServiceModel.ServiceHostingEnvironment+HostingManager/37175364</Data>
    <Data>System.ServiceModel.ServiceActivationException: The service '/DataService.svc' cannot be activated due to an exception during compilation.  The exception message is: Could not load file or assembly 'App_Web_ljypiyuh, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.  。. ---&gt; System.IO.FileNotFoundException: Could not load file or assembly 'App_Web_ljypiyuh, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.  。
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&amp; stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark&amp; stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark&amp; stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark&amp; stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.Load(String assemblyString)
   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)</Data>
    <Data>w3wp</Data>
    <Data>5620</Data>
  </EventData>
</Event> 

가상 디렉터리와 관련하여 w3wp가 무엇인지, 구글이 한몫 했다.       
w3wp: IIS(인터넷 정보 서버)에서 응용 프로그램 탱크와 연결된 프로세스입니다. 만약에 여러 개의 응용 프로그램 탱크가 있다면 대응하는 여러 개의 w3wp가 있습니다.exe의 프로세스 실례가 실행됩니다.
아이리스 배치 문제였구나.해당 문제에 대한 해결 방안은 다음과 같습니다.
프로젝트가 이미 응용 프로그램의 방식으로 배치된 것이지 이미 웹 사이트 형식으로 배치된 것이 아니다.
배치 후 현재 사이트의 형세를 비교하여 배치한다.역시 이전의 문제는 여전, 이미 응용 프로그램이 배치된 OK!!
이번에는 철저히 해결할지, 일시적으로 해결할지, 기록해서 나중에 쓰도록 하자.이 문제가 다음에 재현되기를 기대합니다...

좋은 웹페이지 즐겨찾기