2013-04-02 178 views
0

我遇到問題。 我試圖從應用程序ASP.net MVC訪問wcf Web服務,當我調用方法時出現此異常。訪問wcf服務

There was no endpoint listening at the URI that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

這是我的代碼的web.config

var client = new DSServiceClient(); 
client.Methode(); 

服務模型部分

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="BasicHttpBinding_IDSService" /> 
     </basicHttpBinding> 
    </bindings> 
    <client> 
     <endpoint address="localhost:1695/Service1.svc"; binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDSService" contract="ServiceReference1.IDSService" name="BasicHttpBinding_IDSService" /> 
    </client> 
</system.serviceModel> 
+0

你的代碼很好_if_有一個端點監聽你在app.config中指定的地址,而_if_端點接口公開一個名爲'Methode'的方法。 –

+0

FYI,它的 「WCF服務」,而不是 「一個WCF」 –

回答

0

這是我的服務

<system.serviceModel> 
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
<bindings> 
    <basicHttpBinding> 
    <binding name="BasicHttpEndpointBinding"> 
     <security mode="None"> 
     <transport clientCredentialType="None" proxyCredentialType="None" 
     realm="" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<services> 
    <service behaviorConfiguration="DSWebService.Service1Behavior" 
    name="DSWebService.Service1"> 
    <endpoint address="" binding="wsHttpBinding" 
     contract="DSWebService.IDSService"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:1695/DSWebService" /> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="DSWebService.Service1Behavior"> 
     <!-- To avoid disclosing metadata information, set the value below to false before deployment --> 
     <serviceMetadata httpGetEnabled="true"/> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

的web.config文件,這是我在客戶端的web.config文件:

<system.serviceModel> 
<bindings> 
    <wsHttpBinding> 
    <binding name="WSHttpBinding_IDSService" /> 
    </wsHttpBinding> 
</bindings> 
<client> 
    <endpoint address="http://localhost:1695/Service1.svc" binding="wsHttpBinding" 
     bindingConfiguration="WSHttpBinding_IDSService" contract="IDSService" 
     name="WSHttpBinding_IDSService"> 
    <identity> 
     <dns value="localhost" /> 
    </identity> 
    </endpoint> 
</client> 

和2項目應該在同一個解決方案上,並且在我們添加參考之後:

DSServiceClient client = new DSServiceClient(); 

client.Methode();

0

檢查您所使用的網址是asp.net的MVC網站的訪問。如果您使用的是http綁定,則可以將url複製並粘貼到部署了網站的服務器上的瀏覽器中。該網址應位於網站根文件夾中的web.config文件中。

+0

<綁定名稱= 「BasicHttpBinding_IDSService」/> <端點地址= 「HTTP://本地主機:1695/Service1.svc」 結合= 「basicHttpBinding的」 bindingConfiguration = 「BasicHttpBinding_IDSService」 合同= 「ServiceReference1.IDSService」 名稱= 「BasicHttpBinding_IDSService」/> Emna2013

+0

當我複製並粘貼它是一個斜線到最後我不k現在和響應是端點未找到。 – Emna2013

+0

如果您打開瀏覽器並訪問http:// localhost:1695/Service1.svc,您會得到什麼? – EdmundYeung99

0

您是否使用IIS 7來託管?如果你可以訪問你的站點,啓用目錄瀏覽(暫時),點擊IIS管理器右側的瀏覽鏈接,選擇服務類(「something.svc」),它應該在瀏覽器中彈出。此時,您可以從瀏覽器中複製URL並將localhost替換爲服務器名稱。您甚至可以繼續單擊該頁面上的頂部鏈接以訪問WSDL。如果出現問題,您可能會收到一條錯誤消息,這可能會更有幫助。

+0

我沒有找到瀏覽鏈接:( – Emna2013

+0

Erreur HTTP 404。3 - Not Found La page que vous avezdemandéene peut pasêtretraitéeen raison de la configuration d'extension。 Si la page est un script,ajoutez un gestionnaire。 Si le fichier doitêtretéléchargé,ajoutez un mappage MIME。 – Emna2013

+0

現在你應該知道URL是什麼了,包括la message d'error,你的.svc文件可能有錯誤,你在端點上使用行爲擴展嗎?您應該從服務中發佈您的端點和服務配置。 – PatFromCanada