2010-11-21 222 views
4

我目前有Azure WCF服务和Windows Phone 7项目的解决方案。我可以在本地运行开发结构并浏览到我的服务罚款的url(http://127.0.0.1:81/API/V1.svc)。当我从Windows Phone应用程序添加服务引用时,它会发现服务正常,但是当我尝试查看服务上的方法时,出现错误“无法启动ASP.NET开发服务器,因为端口为'50149'使用。”如果点击确定,我会收到“从地址下载元数据时出错,请验证您是否输入了有效地址。”Azure WCF服务使用Azure WCF服务

我不明白为什么它被发现它在端口50149,因为我浏览到它的端口81,但我尝试添加该服务时使用端口81和我

时出错下载的“http ://本地主机:81/API/V1.svc”。 无法连接到远程服务器 由于目标机器主动拒绝它,因此无法建立连接127.0.0.1:81 元数据包含无法解析的引用:'http:// localhost:81/API/V1.svc ”。 在http://localhost:81/API/V1.svc没有可以接受消息的端点侦听。这通常是由不正确的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。 无法连接到远程服务器 由于目标机器主动拒绝它,因此无法建立连接127.0.0.1:81 如果服务在当前解决方案中定义,请尝试构建解决方案并再次添加服务引用。

这里是我的服务模型部分

<system.serviceModel> 
    <services> 
    <service name="DocDemon.API.V1"> 
     <endpoint name="basicHttpBinding" binding="basicHttpBinding" contract="DocDemon.API.IV1" /> 
    </service> 
    </services> 
    <behaviors> 
    <serviceBehaviors> 
    <behavior name=""> 
    <serviceMetadata httpGetEnabled="true" /> 
    <serviceDebug includeExceptionDetailInFaults="false" /> 
    </behavior> 
    </serviceBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
    <bindings> 

    </bindings> 
</system.serviceModel> 

我需要定义和终点会在这里?

它是否与WP7项目和Azure WCF处于相同的解决方案有关? (当我尝试从WP7应用程序添加服务引用时,是否必须运行WCF?)

+0

您的端点配置是什么样的?我假设你有Dev Fabric正在运行? – Igorek 2010-11-21 23:10:55

回答

1

我将WP7应用程序转移到它自己的解决方案中,然后它能够​​在该应用程序在本地DevFabric中运行时检测到Web服务。当他们在同一个解决方案中时,WP7应用程序无法找到它。

0

您是否看过MSDN代码库上的WCF Azure示例known issues?元数据有一个微妙的地方,需要一个行为调整。希望这有助于。

+0

已经有这两个。 – 2010-11-21 23:05:35

0

在Azure上运行我的端点配置在两个地方(我的例子定义了443端口安全的SSL端点)我的WCF:在web.config中

月1日的时间来定义端点合同:

<system.serviceModel> 
    <services> 
     <service 
      behaviorConfiguration="CustomValidationBehavior" 
      name="ServiceName"> 

      <endpoint 
           binding="wsHttpBinding" 
           bindingConfiguration="MembershipBinding" 
           name="bindingName         contract="InterfaceName" /> 

之后,您还必须确保Azure的暴露你的服务直通ServiceDefinition.csdef中自己的终点:

<InputEndpoints> 
    <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="CertName" /> 
</InputEndpoints> 
0

不能使用引用到该端口是否没有运行,没有找到元数据。

我会说你的服务器项目移动到IIS而不是Casini,因为这是在Azure平台上运行的地方。 我确实遇到了一些与Azure和Casini一起玩的问题,这些问题并没有发生在IIS上。