«Файл не был предварительно скомпилирован и не может быть запрошен» - PullRequest
9 голосов
/ 28 мая 2009

Я установил набор стандартных веб-сервисов на сервер Windows 2003, IIS 6. Когда я получаю доступ к любому из веб-сервисов через свой браузер, я получаю желтый экран .NET с исключением:

Файл '/SuperOfficeWebService/Contact.asmx' не был предварительно скомпилирован и не может быть запрошен.

Те же стандартные веб-сервисы (установленные через .msi) работают на других машинах.

Файлы .asmx содержат только текст «Это файл маркера, созданный инструментом предварительной компиляции, и его не следует удалять!», Как и ожидалось.

В папке bin \ у меня есть скомпилированные файлы, соответствующие файлам .asmx.

Что может быть причиной сообщения об ошибке? Какие-либо настройки IIS или .NET 2.0, которые не позволяют IIS загружать скомпилированные файлы?

Ответы [ 7 ]

2 голосов
/ 03 августа 2010

Если кто-то еще ищет решение, у меня возникла та же проблема. Моя проблема заключалась в том, что я использовал «aspnet_compiler» из неправильной папки фреймворка. Мой проект был создан в VS'05 и .net 2.0. Я пытался прекомпилировать из "c: \ windows \ Microsoft .NET \ Framework \ v4.xxxx", когда мне нужно было прекомпилировать из "c: ... \ v2.xxxx".

Надеюсь, это кому-нибудь поможет.

1 голос
/ 09 сентября 2011

У меня было то же сообщение, но не с веб-службой. В моем случае это было ванильное веб-приложение ASP.NET 2.0, которое также использует AJAX Control Toolkit v1.0.61025. Когда я отыскал его, я обнаружил, что моя среда (VS или одно из моих дополнений) убрала два элемента из моего web.config:

  • В теге "сборки" отсутствовали две строки:

    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    
  • Также отсутствовали эти строки из раздела "system.web":

    <httpHandlers>
      <remove verb="*" path="*.asmx"/>
      <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
    </httpHandlers>
    <httpModules>
      <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </httpModules>
    

Я занимаюсь развертыванием XCOPY и использую web.config для контроля различий между разработкой и реализацией (строка подключения и т. Д.). После публикации в VS (в папку на моем устройстве dev) я удаляю web.config (так как он имеет мои настройки dev) и просто продолжаю использовать тот же web.config в прямом эфире. Поскольку в живом web.config были эти пропущенные строки, я компилировал против web.config, который отличался не только несколькими значениями ключей приложения.

Восстановление этих строк в моей среде разработки и повторная публикация устранили проблему. Оу, они только что снова исчезли из моего VS 2010, мне лучше записать вопрос!

1 голос
/ 29 мая 2009

Проблема была решена установкой «Microsoft Web Service Enhancements v3.0».

Его можно скачать здесь: http://www.google.no/search?hl=no&q=microsoft+web+services+enhancements+3.0+download&cad=h

0 голосов
/ 15 ноября 2016

Бин, развертывающий Microsoft.WebServices3.dll 3.0.5305.0, работал для меня на Windows Server 2012 R2 с .Net Framework 4.5+. Эта опция устраняет необходимость установки .Net Framework 3.5 и WSE 3.0.

0 голосов
/ 23 января 2015

В нашем случае мы получили это сообщение после повторного создания сайта. Файлы на сайте должны были быть скомпилированы с использованием .NET 4.0.3, а IIS по умолчанию был 2.0.5. Нам пришлось изменить версию ASP.NET в разделе Сайт> Свойства> ASP.NET.

0 голосов
/ 08 июня 2011

Если вы столкнулись с этой проблемой при запуске сценария MSBuild, скорее всего, ваш проект представляет собой проект 2.0 или 3.5, а MSBuild использует компилятор 4.0. Добавьте TargetFrameworkMoniker="3.5" к вашим AspNetCompiler директивам.

0 голосов
/ 07 февраля 2011

У меня была та же проблема, и я исправил ее, выполнив следующую команду, чтобы заново связать правильный компилятор с IIS.

Перейдите в папку той версии .NET, которую вы хотите использовать (например: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727)

И запустить: aspnet_regiis -i

Надеюсь, это поможет.

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