ResponseSoapContext.Current равен нулю - PullRequest
0 голосов
/ 01 октября 2010

Я выполняю код веб-службы на своем компьютере вместе с кодом клиента. Он работал нормально и смог получить вложения Dime, отправленные клиенту из веб-службы.

Веб-сервис использует вложения WSE 2.0 и Dime. Код клиента находится на том же компьютере, который вызывает веб-сервис.

Однако, когда я собираюсь развернуть его на Windows 2003 R2 Server, в строке ResponseSoapContext.Current.add (dimeAttachment) произошел сбой из-за того, что объект ResponseSoapContext.Current имеет значение null.

Код клиента сумел вызвать веб-сервис, как я вижу в журналах, что он пытается что-то сделать.

Будет ли брандмауэр, останавливающий код клиента, получающий вложение Dime от веб-службы? Или есть настройки, которые мне не хватает? Вот код:

            DimeAttachment dimeAttach = new DimeAttachment(
            "application/octet-stream", TypeFormat.MediaType,
            streamObj);

            if (ResponseSoapContext.Current != null)
            {
                ResponseSoapContext.Current.Attachments.Add(dimeAttach);
            }
            else
            {
                throw new Exception("The ResponseSoapContext.Current object is null");
            }

Ответы [ 2 ]

1 голос
/ 01 октября 2010

Оказывается, на сервере был установлен Microsoft WSE 2.0 с пакетом обновления 2 (SP2), где клиент использовал Microsoft WSE 2.0 с пакетом обновления 3 (SP3).

Установил на сервере Microsoft WSE 2.0 с пакетом обновления 3 (SP3) и обновил ссылки, и теперь все работает.

0 голосов
/ 16 февраля 2017

У меня была эта проблема, и я решил ее из моего файла web.config сервера, добавив некоторые конфигурации о WSE. Мой web.config (удаленные настройки, не относящиеся к WSE):

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="microsoft.web.services2" type="Microsoft.Web.Services2.Configuration.WebServicesConfiguration, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </configSections>

  <system.web>
    <webServices>
      <soapExtensionTypes>
        <add type="Microsoft.Web.Services2.WebServicesExtension, Microsoft.Web.Services2, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" priority="1" group="0" />
      </soapExtensionTypes>
    </webServices>
  </system.web>
  <microsoft.web.services2>
    <messaging>
      <maxRequestLength>1024000</maxRequestLength>
    </messaging>
    <diagnostics />
  </microsoft.web.services2>
</configuration>
...