Сервисная ошибка запуска WCF “Этот набор уже содержит адрес со схемой http”

Вам нужно работать с элементами DOM, а не со строками. Затем вы можете добавить или добавить, как показано здесь:

// Create and configure DOM elements that will be used:
let a = document.createElement("a");
a.id = "button";
a.textContent = "Button";

let li = document.createElement("li");
li.classList.add("list");
li.textContent = "List";

// Get reference to the node to prepend/append to:
let target = document.getElementById("id1");

let answer = +prompt("1 = prepend, 2 = append");

if (answer === 1) {
   target.parentNode.insertBefore(a, target);
} else {
   target.appendChild(li);
}
<body>

  <div id="id1">
    <input type="submit" id="id2">
  </div>
  
</body>

181
задан Jeroen 17 November 2014 в 05:16
поделиться

3 ответа

Сводка,

решение для Кода: Здесь

решения для Конфигурации: Здесь

С помощью Mike Chaliy , я нашел некоторые решения о том, как сделать это через код. Поскольку эта проблема собирается влиять в значительной степени на все проекты, которые мы развертываем на продуктивной среде, которой я требовал просто решение для конфигурации. Я в конечном счете нашел тот, который детализирует, как сделать это в .net 3.0 и .net 3.5.

Взятый от сайта, ниже пример того, как изменить Вашу веб-конфигурацию приложений:

<system.serviceModel>
    <serviceHostingEnvironment>
        <baseAddressPrefixFilters>
            <add prefix="net.tcp://payroll.myorg.com:8000"/>
            <add prefix="http://shipping.myorg.com:9000"/>
        </baseAddressPrefixFilters>
    </serviceHostingEnvironment>
</system.serviceModel>

В вышеупомянутом примере, сеть tcp://платежная ведомость myorg.com:8000 и http://shipping.myorg.com:9000 является единственными базовыми адресами для их соответствующих схем, которым позволят пройтись. baseAddressPrefixFilter не поддерживает подстановочных знаков.

baseAddresses, предоставленный IIS, может иметь адреса, связанные с другими схемами, не существующими в списке baseAddressPrefixFilter. Эти адреса не будут отфильтрованы.

(непротестированное) решение DNS: я думаю, что при создании новой записи DNS, характерной для веб-приложения добавил новый веб-сайт и дал ему единственный заголовок хоста, соответствующий записи DNS, Вы смягчите эту проблему в целом, и не должны были бы записать пользовательский код или добавить префиксы к Вашему web.config файлу.

145
ответ дан Community 23 November 2019 в 06:08
поделиться

Вы видели это - http://kb.discountasp.net/KB/a799/error-accessing-wcf-service-this-collection-already.aspx

, можно ли разрешить эту ошибку путем изменения web.config файла.

С ASP.NET 4.0, добавьте следующие строки к своему web.config:

<system.serviceModel> 
     <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
</system.serviceModel> 

С ASP.NET 2.0/3.0/3.5, добавьте следующие строки к своему web.config:

<system.serviceModel> 
     <serviceHostingEnvironment> 
          <baseAddressPrefixFilters> 
               <add prefix="http://www.YourHostedDomainName.com"/> 
          </baseAddressPrefixFilters> 
     </serviceHostingEnvironment> 
</system.serviceModel> 
58
ответ дан Adaptabi 23 November 2019 в 06:08
поделиться

В .Net 4 вы можете использовать опцию multipleSiteBindingsEnabled:

<system.serviceModel>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true">
    </serviceHostingEnvironment>
</system.serviceModel>

Тогда вам не придется указывать каждый адрес.

http://msdn.microsoft.com/en-us/library/system.servicemodel.servicehostingenvironment.multiplesitebindingsenabled.aspx

163
ответ дан 23 November 2019 в 06:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: