没有协议绑定匹配给定地址的错误

时间:2013-08-25 07:09:13

标签: wcf

我正在使用Visual Studio 2008.我创建了一个WCF应用程序,当我第一次从VS IDE(不在IIS上托管)运行该服务时,该服务在Web浏览器中打开,地址为localhost:1927/ 。每次我从VS IDE运行此服务时,它都在同一个端口运行,即1927

我想更改端口号(出于某种原因),因此我在localhost:1928文件中提供了特定地址web.config。在此更改后,当我在IDE中运行Web服务时,我不断收到以下错误。

  

没有协议绑定与给定地址'localhost:1928 /'匹配。协议绑定在IIS或WAS配置中的站点级别配置。

以下是<service>文件中的web.config部分。

<service name="EMS.ServiceImplementation.EmployeeService"
         behaviorConfiguration="EM.EmployeeServiceBehavior" >
   <endpoint name="httpEndPoint" 
       address="http://localhost:1928/" 
       binding="basicHttpBinding" bindingConfiguration=""  
       contract="EMS.ServiceContracts.IEmployeeService" />
   <endpoint name="MEXEndPoint" 
       address="mex" 
       binding="mexHttpBinding" bindingConfiguration=""
       contract="IMetadataExchange" />
</service>

我的具体问题是:

  1. VS IDE如何在第一次运行时选择的同一端口上运行服务?这些信息存储在哪里? (我查看了解决方案中的所有文件,但我找不到任何地方提到的端口1927)。

  2. 如何在不同的端口上运行服务?

  3. (请注意,我在Stackoverflow中看到了类似的线程,但它们与IIS中托管的服务有关)`

2 个答案:

答案 0 :(得分:2)

只需将地址属性留空即可解决。

答案 1 :(得分:1)

您可以在“项目属性”下的“解决方案资源管理器”中控制此项。有一个名为Web的选项卡,您可以告诉Visual Studio是使用默认的自动分配端口,还是使用您选择的特定固定端口:

enter image description here

任何非标准设置都会存储到您的YourProject.csproj文件中。