не удается найти App_global.asax после запуска aspnet_merge в приложении WCF - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть двухэтапный процесс для получения окончательного результата.

Сначала я использую задачу 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.

Есть идеи о том, что может пойти не так?

1 Ответ

0 голосов
/ 18 ноября 2011

Оказывается, кто-то добавил старую версию System.Query.dll прямо в проект, что вызывало предупреждения во время прекомпиляции:

ASPNETCOMPILER : warning CS1685: The predefined type 'System.Runtime.CompilerServices.ExtensionAttribute' is defined in multiple assemblies in the global alias; using definition from 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\theWCFProj\0fd01092

\ 7b51c9a \ сборка \ DL3 \ c17fdca3 \ 777377c3_17a6cc01 \ System.Query.DLL '

Удаление этой .dll и явных ссылок на нее в файлах .csproj устранило проблему. Как только эти предупреждения перед компиляцией исчезли, служба WCF больше не имела проблем с доступом к App_global.asax

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...