Nano Hash - криптовалюты, майнинг, программирование

Метаданные содержат ссылку, которую невозможно разрешить для службы wcf, размещенной на iis.

любая помощь приветствуется. У меня есть один образец службы и одно тестовое консольное приложение. У меня есть доступ к метаданным образца службы, добавляя ссылку из того же решения в консольное приложение, и я получаю информацию о привязке. также я размещаю (публикацию) ту же службу в IIS и добавляю ссылку через URL-адрес службы в приложении Test Console, и я получаю результат.

Теперь проблема заключается в том, что моя запущенная служба данных, размещенная (опубликованная) в IIS, я добавляю ссылку и пытаюсь прочитать метаданные из URL-адреса службы, что дает мне ошибку. Метаданные содержат неразрешимую ссылку: 'http://localhost:9092/TransactionDataService.svc/mex'.

Я использую mexhttpbinding с multibinding = true в обоих случаях (образец + моя работающая служба данных)

веб-конфигурация для samp-le serviec

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>
      <service name="ServiceApp.Service1">
        <endpoint address="" binding="wsHttpBinding" name="Service1Endpoint" contract="ServiceApp.IService1"/>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

Код для доступа к метаданным

EndpointAddress serviceEndpointAddress = new EndpointAddress("http://localhost:30617/Service1.svc/mex");

            var endpointCollection = MetadataResolver.Resolve(typeof(IService1), serviceEndpointAddress);


            foreach (var endpoint in endpointCollection)
            {
                Type bindingType = endpoint.Binding.GetType();

                if (bindingType.Equals(typeof(WSHttpBinding)))
                {
                    Console.WriteLine("Eureka!!!");
                }
            }

веб-конфигурация для службы данных

<bindings>
            <wsHttpBinding>
                <binding name="WSHttp" openTimeout="01:00:00" closeTimeout="01:00:00" sendTimeout="01:00:00" receiveTimeout="01:00:00" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="0" maxReceivedMessageSize="2147483647">
          <reliableSession enabled="true" />
                    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                </binding>
            </wsHttpBinding>
        </bindings>

    <!--Service Behaviors-->
        <behaviors>
            <serviceBehaviors>
                <behavior name="DataAccessBehavior">
                    <dataContractSerializer maxItemsInObjectGraph="2147483647" />
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="true" />
                </behavior>
            </serviceBehaviors>
        </behaviors>

    <!--Service Configuration-->
        <services>
            <service name="TransactionDataAccess" behaviorConfiguration="DataAccessBehavior">
                <endpoint name="DataAccessServiceEndpoint" address="" binding="wsHttpBinding" bindingConfiguration="WSHttp" contract="TransactionDataServices.ITransactionDataService"/>
        <endpoint address="mex" binding="wsHttpBinding" contract="IMetadataExchange"/>
            </service>
        </services>
        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
    </system.serviceModel>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
        <directoryBrowse enabled="true" />
    </system.webServer>

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

19.07.2011

Ответы:


1

Посмотрите, не забыли ли вы случайно украсить свои транспортируемые классы атрибутами [DataContract] (не забудьте также [DataMember]).

09.01.2012
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..