2010-11-21 220 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上。