Если вы выберете веб-проект в обозревателе решений, вы можете изменить свойство в окне инструмента Свойства, которое остановит изменение порта. Свойство называется «Использовать динамические порты» , и вы хотите установить для него значение false, чтобы порт оставался статическим.
Вы также можете указать номер порта в этих настройках.
Обратите внимание, что это не на страницах свойств проекта, а в окне инструмента Свойства (возможно, поэтому его так сложно найти - мне потребовалось довольно много времени, чтобы разобраться с этим самостоятельно).
Обновление
Чтобы переключаться между развертыванием и разработкой, я склонен указывать две привязки SOAP, а затем использовать #ifdef DEBUG
для переключения привязки моего клиента SOAP в зависимости от типа сборки. Сборка DEBUG указывает на службы разработки, а сборка RELEASE указывает на развернутые службы.
Итак, мой ClientConfig выглядит примерно так:
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Soap_Debug" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
<binding name="Soap_Release" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://www.mymadeupurl.com/myservices.asmx"
binding="basicHttpBinding" bindingConfiguration="Soap_Release"
contract="MyServices.MyServicesSoap" name="Soap_Release" />
<endpoint address="http://localhost:1929/mydservices.asmx"
binding="basicHttpBinding" bindingConfiguration="Soap_Debug"
contract="MyServices.MyServicesSoap" name="Soap_Debug" />
</client>
</system.serviceModel>
</configuration>
Я создаю экземпляры клиента SOAP следующим образом:
#if DEBUG
// localhost hosts the web services in debug builds.
soapClient = new MyServicesSoapClient("Soap_Debug");
#else
// The web services are hosted in a different location for release builds.
soapClient = new MyServicesSoapClient("Soap_Release");
#endif