【问题标题】:No protocol binding matches the given address' error没有协议绑定匹配给定地址的错误
【发布时间】:2013-08-25 15:24:30
【问题描述】:

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

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

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

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

<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. 如何让服务在不同的端口上运行?

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

【问题讨论】:

    标签: wcf


    【解决方案1】:

    把地址属性留空就解决了。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        • 1970-01-01
        • 2012-12-03
        • 1970-01-01
        • 2014-01-10
        • 1970-01-01
        • 2020-08-24
        相关资源
        最近更新 更多