2015-12-04 4 views
0

Я работаю над настройкой старой DLL C# (написанной в Visual Studio 2003) на сервере под управлением Windows Server 2012 R2. DLL вызывает ошибку при вызове C DLL (также скомпилированной с использованием Visual Studio 2003), которая возвращает строку. Сообщение об ошибке возникает при C DLL пытается вернуть строку следующим образом:Ошибка HTTP-статуса 502 при возврате строки из C DLL в C# DLL в Windows Server 2012

System.Net.WebException: Сбой запроса с состоянием HTTP 502: Proxy Error (Указанное сетевое имя больше не доступно.).

Код запускается без каких-либо проблем в XP и Windows 7, а C# DLL выполняется веб-службой ASP.NET.

Соответствующий C# код выглядит следующим образом:

[DllImport("ESConnect.dll", SetLastError=false, CharSet=CharSet.Ansi)] 
private static extern StringBuilder EsGetText(ref StringBuilder name, ref StringBuilder strReturned, ref size); 
. 
. 
. 
StringBuilder sbReturned = new StringBuilder(); 
StringBuilder sbTemporary = new StringBuilder(); 

sbTemporary=EsGetText(ref sbName, ref sbReturned, ref size); 

И код C, для функции EsGetText, является:

FNEXPORT(PSZ __stdcall, EsGetText)(PSZ *ppszName, PSZ *ppszValue, PSHORT psSize) 
{ 
    PFILE pFile = NULL; 

    gdClock = USE(gdClock, fnTime()); 

    TbxGetText(*ppszName, *ppszValue, (SHORT)(psSize ? *psSize : 0)); 

    return(*ppszValue); 
} 

Я могу сказать от входа, что я добавил, что EsGetText успешно заполняя значение в ppszValue, но как только выполняется команда return, возникает ошибка «HTTP status 502».

Любые идеи относительно того, что может быть причиной этой проблемы, более чем приветствуются. Спасибо.

ответ

0

Установите веб-службу ASP.Net для использования пула приложений ASP.Net 2.0. Если у вас нет доступных пулов приложений ASP.Net 2.0, убедитесь, что у вас установлен .Net 3.5.2. Похоже, ваш старый веб-сервис имеет некоторую конфигурацию, которая не совместима с .Net 4. Это не редкость, и если вам не нужно .Net 4, нет необходимости обновлять код/​​службу.

+0

Большое спасибо за ответ, служба использует пул приложений ASP .Net 2.0, но я рассмотрю версии .NET Framework, установленные на сервере. –