Ho un servizio WCF che contiene un codice C#, che fa riferimento a una DLL C++/CLI, che fa riferimento ad alcune DLL native. Includo tutte le DLL necessarie nella cartella bin per la mia applicazione IIS, ma quando IIS carica le DLL gestite, sembra essere copiandoli in una directory profondo come:Come si ottiene IIS per caricare una DLL nativa a cui fa riferimento il servizio WCF?
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\testwcf\73473be6\e625098c\assembly\dl3\aada7c33\85a7332b_2f9acc01
Si copia ogni DLL gestita al suo la propria directory e la carica. Quando arriva al mio C++/CLI DLL, lo copia in una directory come sopra, e quindi non è in grado di caricare le dipendenze. Se copio manualmente tutte le DLL native in questa cartella, verrà eseguito, ma questa non è una soluzione eccezionale.
My web.config è uno stock creato da VS, con un endpoint definito in base a un articolo MSDN.
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="WcfService.Service1">
<endpoint address=""
binding="wsHttpBinding"
contract="WcfService.IService1" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Come posso recuperare automaticamente queste DLL?
il contenuto del tuo web.config ti aiuterà a capirlo meglio –
@SSamra Post è ora aggiornato –
sì, non riesci a vedere niente di sbagliato, che dire del tuo AppPool è abilitato a 32 bit? è possibile trovare il pool di app sotto IIS \ Pool di applicazioni e selezionarne uno sotto il quale si esegue l'applicazione Web –