Проблемы с ошибками NotFound и сбоями компиляции - PullRequest
3 голосов
/ 15 февраля 2011

Мы часто получаем ошибки с сервисом WCF (потребляемым Silverlight), которые не дают нам много чего сделать:

The service '/ourservice.svc' cannot be activated due to an exception during compilation.  
The exception message is: Object reference not set to an instance of an object.. ---> 
System.NullReferenceException: Object reference not set to an instance of an object.
at System.Web.Compilation.DiskBuildResultCache.CacheBuildResult(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart)
   at System.Web.Compilation.BuildManager.CacheBuildResultInternal(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart)
   at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)
   at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile)

Сервис компилируется / работает нормально всякий раз, когда я использую его через браузер или с помощью клиента silverlight. Сторона Silverlight системы сообщает об этой одинаково бесполезной ошибке:

System.ServiceModel.CommunicationException: 
[HttpWebRequest_WebException_RemoteServer]Arguments: NotFound

Единственное, что мне удалось найти, - это, возможно, изменение поведения экземпляра , но я не уверен, зачем нам это нужно, и я все равно не могу сказать, какое значение по умолчанию.

  • Он размещен на Windows 2008 с пакетом обновления 1
  • Сервер находится за балансировщиком нагрузки
  • Тайм-ауты в web.config для службы 5 минут
  • Максимальный размер объекта 50000000
  • Услуги имеют AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)

Любые предложения будут великолепны

Обновление

Это еще один симптом - клиент Silverlight часто отправляет это исключение в нашу службу ведения журналов (которая записывает в журнал событий + электронные письма)

There was an error saving the report - The error object contained errors
System.ServiceModel.CommunicationException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60129.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer ---> System.Net.WebException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60129.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer ---> System.Net.WebException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.60129.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer
   at System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult)
   at System.Net.Browser.BrowserHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(Object sendState)
   at System.Net.Browser.AsyncHelper.<>c__DisplayClass4.<BeginOnUI>b__1(Object sendState)
   --- End of inner exception stack trace ---
   at System.Net.Browser.AsyncHelper.BeginOnUI(SendOrPostCallback beginMethod, Object state)
   at System.Net.Browser.BrowserHttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult result)
   --- End of inner exception stack trace ---
   at System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
   at System.ServiceModel.ClientBase`1.ChannelBase`1.EndInvoke(String methodName, Object[] args, IAsyncResult result)
   at MyNamespaceSilverlight.Core.ReportServiceReference.ReportServiceClient.ReportServiceClientChannel.EndUpdateReport(IAsyncResult result)
   at MyNamespaceSilverlight.Core.ReportServiceReference.ReportServiceClient.MyNamespaceSilverlight.Core.ReportServiceReference.IReportService.EndUpdateReport(IAsyncResult result)
   at MyNamespaceSilverlight.Core.ReportServiceReference.ReportServiceClient.OnEndUpdateReport(IAsyncResult result)
   at System.ServiceModel.ClientBase`1.OnAsyncCallCompleted(IAsyncResult result)

Ответы [ 4 ]

9 голосов
/ 26 марта 2011

Есть ли в сервисе что-либо изменяющее содержимое каталога \ bin?При размещении в ASP.NET среда выполнения ASP.NET будет отслеживать каталог \ bin на наличие изменений, а при обнаружении изменения будет пытаться повторно инициализировать приложение, чтобы оно обнаружило все возможные изменения.

Вы не должны ничего записывать в каталог \ bin как часть нормальной работы вашей службы.Обычно это проблема с файлами журналов, которые настроены для записи в каталог \ bin, а не в отдельный каталог.Если по какой-либо причине вы не можете записать файлы журнала где-нибудь за пределы корневого каталога вашего приложения, просто запишите их в подкаталог \ logs и настройте ASP.NET, чтобы блокировать любой доступ к этому каталогу, например:

<location path="logs">
    <system.web>
        <authorization>
            <deny users="*" />
        </authorization>
    </system.web>
</location>
1 голос
/ 11 октября 2012

Мы получили аналогичную ошибку во время тестирования служб WCF, когда один из разработчиков начал развертывание новой версии службы.

1 голос
/ 26 марта 2011

Похоже, ошибка в System.Web.Об этой же проблеме сообщается здесь: http://connect.microsoft.com/VisualStudio/feedback/details/550511/nullreferenceexception-during-service-compilation.

Жюри все еще отсутствует, но я думаю, что у вас больше шансов решить эту проблему, если вы опубликуете свои данные на http://connect.microsoft.com.

1 голос
/ 26 марта 2011

О подобной проблеме сообщается здесь: Проблема активации службы , которая, по-видимому, связана с файлами журналов.

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