Подтвердил мое исправление:
В вашем файле web.config вы должны настроить его так:
<system.serviceModel >
<serviceHostingEnvironment configSource=".\Configurations\ServiceHosting.config" />
...
Затем создайте структуру папок, которая выглядит следующим образом:
/web.config
/Configurations/ServiceHosting.config
/Configurations/Deploy/ServiceHosting.config
Базовый serviceHosting.config должен выглядеть следующим образом:
<?xml version="1.0"?>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
в то время как тот, что в / Deploy выглядит так:
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<add prefix="http://myappname.web707.discountasp.net"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
Помимо этого, вам нужно добавить шаг ручного или автоматического развертывания, чтобы скопировать файл из / Deploy поверх файла в / Configurations. Это работает невероятно хорошо для служебного адреса и строк подключения и экономит усилия, делая другие обходные пути.
Если вам не нравится этот подход (который хорошо масштабируется для ферм, но слабее на одной машине), вы можете рассмотреть возможность добавления файла web.config на уровень выше развертывания службы на машине хоста и размещения serviceHostingEnvironment узел там. Это должно каскад для вас.