2013-02-17 34 views
0

所以我最近一直在部署一個Silverlight網站,而我剛剛注意到了一些非常可怕的bug。「www」對我的端點綁定有什麼作用?

我的Silverlight應用程序在同一網站上的Web應用程序上託管的wcf服務有5個綁定,只有一個文件夾位於前面。假設我的網站是www.test.com。下面是Silverlight應用程序的ServiceReferences.ClientConfig綁定:

<client> 
    <endpoint address="http://www.test.com/MyWebService/Service1.svc" 
     binding="customBinding" bindingConfiguration="CustomBinding_IService1" 
     contract="Service1.IService1" name="CustomBinding_IService1" /> 
    <endpoint address="http://www.test.com/MyWebService/Service2.svc" 
     binding="customBinding" bindingConfiguration="CustomBinding_IService2" 
     contract="Service2.IService2" name="CustomBinding_IService2" /> 
    <endpoint address="http://www.test.com/MyWebService/Service3.svc" 
     binding="customBinding" bindingConfiguration="CustomBinding_IService3" 
     contract="Service3.IService3" name="CustomBinding_IService3" /> 
    <endpoint address="http://www.test.com/MyWebService/Service4.svc" 
     binding="customBinding" bindingConfiguration="CustomBinding_IService4" 
     contract="Service4.IService4" name="CustomBinding_IService4" /> 
    <endpoint address="http://www.test.com/MyWebService/Service5.svc" 
     binding="customBinding" bindingConfiguration="CustomBinding_IService5" 
     contract="Service5.IService5" name="CustomBinding_IService5" /> 
</client> 

所以我的問題是,當我加載Silverlight應用程序,在我的IIS網站的根目錄下託管的默認aspx頁面時,只CONNEXIONS工作當我輸入test.com的URL地址,而不是當我輸入www.test.com。它不會失敗,但應通過服務提取的數據不會顯示,並且我無法連接我的憑據。 (因爲我的服務之一是用於身份驗證)

我試圖通過刪除WWW改變值我我的應用程序的ServiceReferences.ClientConfig,但情況並沒有改變一個位。它仍然連接好沒有WWW在URL中,而不是當WWW打開時。

回答

0

嗯,多虧this lovely post,我已經超越了這個問題。我會在這裏解釋我必須做的事情,以防萬一鏈接失效。

我所要做的就是改變每個服務客戶端的每個實例在我的Silverlight代碼:

Service.IService proxy = new Service.ServiceClient(); 

這樣:

Uri servUri = new Uri("../MyWebService/Service.svc", UriKind.Relative); 
EndpointAddress servAddr = new EndpointAddress(servUri); 
Service.IService proxy = new Service.ServiceClient("CustomBinding_IService", servAddr); 

正如在博客文章中,」解釋。 。「是必需的,因爲Silverlight應用程序(通常)位於ClientBin文件夾中。

而這對我來說是詭計!

相關問題