У меня есть двухэтапный процесс для получения окончательного результата.
Сначала я использую задачу msbuild для предварительной компиляции приложения WCF
<AspNetCompiler Debug="false" PhysicalPath="$(RootBuildDir)/DeploymentPackages/Helium" TargetPath="$(RootBuildDir)/Packages/theWCFProj" VirtualPath="/theWCFProj" ></AspNetCompiler>
На этом этапе, если я создаю приложение вIIS в результирующий предварительно скомпилированный каталог Packages/theWCFProj
, кажется, что все работает.
Затем я запускаю команду
<Exec Command='aspnet_merge "$(RootBuildDir)/Packages/theWCFProj" -o theWCFProj_aspnet' />
, которая успешно завершается.
Однако при попытке выполнитьзагрузить URL-адрес .svc или вызвать его из клиента WCF, я получаю следующую ошибку:
Could not load file or assembly 'App_global.asax, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
Я вижу, однако, что скомпилированный файл правильно указывает на объединенную сборку, потому что App_global.asax.compiled
содержит:
<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="8" virtualPath="/theWCFProj/global.asax" hash="ffffffff8d3606ab" filehash="ffffe951d4811dee" flags="150000" assembly="theWCFProj_aspnet" type="ASP.global_asax">
<filedeps>
<filedep name="/theWCFProj/global.asax" />
</filedeps>
</preserve>
Служба WCF размещена в IIS7.
Есть идеи о том, что может пойти не так?