2011-08-12 8 views
3

web.config에서 특정 DLL의 로컬 파일 경로 위치를 GAC 또는 C:\Windows\System32에로드하지 않고로드하도록 설정할 수 있습니까?web.config에서로드 할 DLL의 위치 설정

이렇게하면 웹 서비스를 배포하기가 쉬워지며 둘 중 하나를 사용하지 않아도됩니다.

나는 이미 프로젝트에 DLL을 추가하려고했지만 성공하지는 못했습니다. 그것들은 4 개의 oracle 인스턴트 클라이언트 DLL입니다.

  • OCI.DLL
  • orannzsbb11.dll
  • oraocci11.dll oraociicus11.dll

사람이 좋은 것이 일을하는 방법을 알고있는 경우

  • .

    EDIT : DLL은 공개 키를 사용하여 참조 할 수 없으므로 "강력한 이름이 지정되어 있습니다"라는 점에 유의하십시오.

    또한 현재 추가하지 못해 프로젝트에서 직접 참조되지 않습니다.

  • +1

    어떤 이유로 그들은 웹 서비스의'bin' 디렉토리에 배치 할 수 없습니다? – Oded

    +0

    @Oded - 보관함에 보관하면 작동하지 않는 것 같습니다. ASP.NET이 직접 참조하지 않기 때문에 사용하는 경로와 관련이 있습니다. – tgandrews

    답변

    1

    dependentAssembly 요소를 사용하여 dllcodeBase 요소를 통해 존재하는 위치를 지정할 수 있습니다.

    그러나 유효한 URL이어야한다고 생각합니다. MSDN에서

    예 :

    <configuration> 
        <runtime> 
         <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
         <dependentAssembly> 
          <assemblyIdentity name="myAssembly" 
               publicKeyToken="32ab4ba45e0a69a1" 
               culture="neutral" /> 
          <bindingRedirect oldVersion="1.0.0.0" 
              newVersion="2.0.0.0"/> 
          <codeBase version="2.0.0.0" 
             href="http://www.litwareinc.com/myAssembly.dll"/> 
         </dependentAssembly> 
         </assemblyBinding> 
        </runtime> 
    </configuration> 
    
    +0

    로컬 파일 경로를 사용하여이 작업을 수행 할 수 있습니까? 아니면 다른 것을 사용해야합니까? – tgandrews

    +0

    @tgandrews - 유효한 URL이어야합니다. 로컬 프로토콜을 사용할 수 있습니다 (아마도'file : ///'프로토콜로). – Oded

    1

    프로브 경로는 응용 프로그램이 어셈블리 찾아야 위치를 지정할 수 있습니다. 이렇게하면 GAC에 물건을 넣는 데 영향을 미치지 않지만 bin 폴더에 모든 것을 저장하는 대신 사용할 수 있습니다.

    http://msdn.microsoft.com/en-us/library/823z9h8w.aspx

    +0

    빈에서 DLL을 넣는 것이 작동하지 않는 것처럼 ASP.NET에서이 작업을 수행합니까? – tgandrews